diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-20 23:12:08 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-20 23:12:08 +0800 |
commit | 585c1b5543748eac10c31917ef10be494208c9f5 (patch) | |
tree | 6bc551e0c944682458e694e3575aed433d7553bc /mbbsd | |
parent | 34bdef4d512cd8c2385480bca0c34c55a39534de (diff) | |
download | pttbbs-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
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/mail.c | 5 |
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); |