summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-20 23:12:08 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-20 23:12:08 +0800
commit585c1b5543748eac10c31917ef10be494208c9f5 (patch)
tree6bc551e0c944682458e694e3575aed433d7553bc
parent34bdef4d512cd8c2385480bca0c34c55a39534de (diff)
downloadpttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar.gz
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar.bz2
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar.lz
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar.xz
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.tar.zst
pttbbs-585c1b5543748eac10c31917ef10be494208c9f5.zip
* fix buffer overflow.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4682 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--mbbsd/mail.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mbbsd/mail.c b/mbbsd/mail.c
index aafd9f16..61294d7e 100644
--- a/mbbsd/mail.c
+++ b/mbbsd/mail.c
@@ -1987,9 +1987,10 @@ bsmtp(const char *fpath, const char *title, const char *rcpt, const char *from)
int len;
if (strchr(rcpt, '@')) {
+ strlcpy(hacker, rcpt, sizeof(hacker));
len = ptr - rcpt;
- memcpy(hacker, rcpt, len);
- hacker[len] = '\0';
+ if (0 <= len && len < sizeof(hacker))
+ hacker[len] = '\0';
} else
strlcpy(hacker, rcpt, sizeof(hacker));
return send_inner_mail(fpath, title, hacker);