talons

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

commit 5bc11591f13b40bccd9e35ee23a5255cfa44bce0
parent 4f5b04711d774d7779e02f465b8c96c5da17877b
Author: Michael Rasmussen <mir@datanom.net>
Date:   Fri,  9 Oct 2015 19:06:57 +0200

Fix buffer overrun

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

diff --git a/src/plugins/clamd/libclamd/clamd-plugin.c b/src/plugins/clamd/libclamd/clamd-plugin.c @@ -369,6 +369,7 @@ Clamd_Stat clamd_init(Clamd_Socket* config) { } memset(buf, '\0', sizeof(buf)); while ((n_read = read(sock, buf, BUFSIZ)) > 0) { + n_read = n_read < BUFSIZ ? n_read : BUFSIZ - 1; buf[n_read] = '\0'; if (buf[strlen(buf) - 1] == '\n') buf[strlen(buf) - 1] = '\0'; @@ -526,6 +527,7 @@ Clamd_Stat clamd_verify_email(const gchar* path, response* result) { g_free(command); memset(buf, '\0', sizeof(buf)); while ((n_read = read(sock, buf, BUFSIZ)) > 0) { + n_read = n_read < BUFSIZ ? n_read : BUFSIZ - 1; buf[n_read] = '\0'; if (buf[strlen(buf) - 1] == '\n') buf[strlen(buf) - 1] = '\0';