summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2011-11-27 21:08:17 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2011-11-27 21:08:17 +0800
commit000d7ab058e53c30242d44bd27789fa9632453e0 (patch)
treefeac9d2297a8132e65f325c5889323d34e733cb6
parent4ef468100fc0b0f399f61d87d54add9e53ad8d0b (diff)
downloadpttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar.gz
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar.bz2
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar.lz
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar.xz
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.tar.zst
pttbbs-000d7ab058e53c30242d44bd27789fa9632453e0.zip
fix incorrect forward return value checking
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5484 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/mbbsd/record.c16
-rw-r--r--pttbbs/mbbsd/register.c1
2 files changed, 8 insertions, 9 deletions
diff --git a/pttbbs/mbbsd/record.c b/pttbbs/mbbsd/record.c
index 8fcb80e1..52317df9 100644
--- a/pttbbs/mbbsd/record.c
+++ b/pttbbs/mbbsd/record.c
@@ -495,7 +495,7 @@ int
append_record_forward(char *fpath, fileheader_t * record, int size, const char *origid)
{
FILE *fp;
- char buf[512];
+ char buf[PATHLEN];
int n;
char address[64] = "";
char fwd_title[STRLEN] = "";
@@ -503,18 +503,17 @@ append_record_forward(char *fpath, fileheader_t * record, int size, const char *
// No matter what, append it, and return if that failed.
r = append_record(fpath, record, size);
- if (r != 0)
+ if (r < 0)
return r;
// #ifdef USE_MAIL_AUTO_FORWARD
- // Try to build .forward
- for (n = strlen(fpath) - 1; fpath[n] != '/' && n > 0; n--);
- if (n + strlen(FN_FORWARD) + 1 > sizeof(buf))
+ if (strlen(fpath) + strlen(FN_FORWARD) >= PATHLEN) {
+ log_filef("log/invalid_append_record_forward", LOG_CREAT,
+ "%s %s %s\n", Cdatelite(&now), cuser.userid, fpath);
return -1;
-
- memcpy(buf, fpath, n+1);
- strcpy(buf + n + 1, FN_FORWARD);
+ }
+ setdirpath(buf, fpath, FN_FORWARD);
fp = fopen(buf, "r");
if (!fp)
return 0;
@@ -523,6 +522,7 @@ append_record_forward(char *fpath, fileheader_t * record, int size, const char *
address[0] = 0;
fscanf(fp, "%63s", address);
fclose(fp);
+ chomp(address);
strip_blank(address, address);
#ifdef UNTRUSTED_FORWARD_TIMEBOMB
diff --git a/pttbbs/mbbsd/register.c b/pttbbs/mbbsd/register.c
index fc0fb4db..91504d27 100644
--- a/pttbbs/mbbsd/register.c
+++ b/pttbbs/mbbsd/register.c
@@ -605,7 +605,6 @@ new_register(void)
#ifdef MIN_ALLOWED_ID_LEN
else if (strlen(passbuf) < MIN_ALLOWED_ID_LEN)
prints("代號過短,請使用 %d 個字元以上的代號\n", MIN_ALLOWED_ID_LEN);
- // prints("此代號已由系統保留,請使用別的代號\n");
#endif
else // success
break;