talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 171d89917efbe3aa18324e831baaeaadb01dd2a7
parent 6dcf3e1426374286dad4927a3e45ebb7e60be58b
Author: wwp <wwp@free.fr>
Date:   Wed, 11 Apr 2018 08:40:57 +0200

Fix buffer overrun, always writing at buffer size + 1.
Fixes CID #1434188.

Diffstat:
Msrc/plugins/clamd/libclamd/clamd-plugin.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/plugins/clamd/libclamd/clamd-plugin.c b/src/plugins/clamd/libclamd/clamd-plugin.c @@ -461,7 +461,7 @@ static Clamd_Stat clamd_stream_scan(int sock, return NO_CONNECTION; } - while ((count = read(fd, (void *) buf, sizeof(buf))) > 0) { + while ((count = read(fd, (void *) buf, BUFSIZ - 1)) > 0) { buf[count] = '\0'; if (buf[count - 1] == '\n') buf[count - 1] = '\0'; @@ -478,7 +478,7 @@ static Clamd_Stat clamd_stream_scan(int sock, *res = g_strconcat("ERROR -> ", _("Socket write error"), NULL); return SCAN_ERROR; } - memset(buf, '\0', sizeof(buf)); + memset(buf, '\0', BUFSIZ - 1); } if (count == -1) { close(fd);