summaryrefslogtreecommitdiffstats
path: root/mbbsd/mail.c
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-06-19 01:14:32 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-06-19 01:14:32 +0800
commitf5649a5aed5a9fc3b31b7964087252525fca5e60 (patch)
treeb9ed59307e2eda718c057f1aa0ce016619b44f1d /mbbsd/mail.c
parent2edb2692f086fee13c46311bfcdab4eae847447c (diff)
downloadpttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar.gz
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar.bz2
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar.lz
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar.xz
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.tar.zst
pttbbs-f5649a5aed5a9fc3b31b7964087252525fca5e60.zip
* use strtok_r() instead of strtok(). fix bad strtok() usages.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3545 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/mail.c')
-rw-r--r--mbbsd/mail.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/mbbsd/mail.c b/mbbsd/mail.c
index 9f731530..2cc3e886 100644
--- a/mbbsd/mail.c
+++ b/mbbsd/mail.c
@@ -535,14 +535,17 @@ multi_send(char *title)
break;
} else {
if (listing) {
- strtok(ptr = genbuf + 3, " \n\r");
- do {
+ char *strtok_pos;
+ ptr = genbuf + 3;
+ for (ptr = strtok_r(ptr, " \n\r", &strtok_pos);
+ ptr;
+ ptr = strtok_r(NULL, " \n\r", &strtok_pos)) {
if (searchuser(ptr, ptr) && !InNameList(ptr) &&
strcmp(cuser.userid, ptr)) {
AddNameList(ptr);
reciper++;
}
- } while ((ptr = (char *)strtok(NULL, " \n\r")));
+ }
} else if (!strncmp(genbuf + 3, "[通告]", 6))
listing = 1;
}
@@ -1121,7 +1124,6 @@ int
mail_reply(int ent, fileheader_t * fhdr, const char *direct)
{
char uid[STRLEN];
- char *t;
FILE *fp;
char genbuf[512];
int oent = ent;
@@ -1137,14 +1139,17 @@ mail_reply(int ent, fileheader_t * fhdr, const char *direct)
/* find the author */
strlcpy(quote_user, fhdr->owner, sizeof(quote_user));
if (strchr(quote_user, '.')) {
+ char *t;
+ char *strtok_pos;
genbuf[0] = '\0';
if ((fp = fopen(quote_file, "r"))) {
fgets(genbuf, sizeof(genbuf), fp);
fclose(fp);
}
- t = strtok(genbuf, str_space);
- if (t && (!strcmp(t, str_author1) || !strcmp(t, str_author2)))
- strlcpy(uid, strtok(NULL, str_space), sizeof(uid)); // XXX if strtok return NULL
+ t = strtok_r(genbuf, str_space, &strtok_pos);
+ if (t && (strcmp(t, str_author1)==0 || strcmp(t, str_author2)==0)
+ && (t=strtok_r(NULL, str_space, &strtok_pos)) != NULL)
+ strlcpy(uid, t, sizeof(uid));
else {
vmsg("錯誤: 找不到作者。");
quote_user[0]='\0';