commit 5bc11591f13b40bccd9e35ee23a5255cfa44bce0
parent 4f5b04711d774d7779e02f465b8c96c5da17877b
Author: Michael Rasmussen <mir@datanom.net>
Date: Fri, 9 Oct 2015 19:06:57 +0200
Fix buffer overrun
Diffstat:
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';