diff --git a/libclamav/others_common.c b/libclamav/others_common.c index bab93f07b..68132e43e 100644 --- a/libclamav/others_common.c +++ b/libclamav/others_common.c @@ -812,6 +812,7 @@ const char* cli_strerror(int errnum, char *buf, size_t len) #endif err = strerror(errnum); strncpy(buf, err, len); + buf[len-1] = '\0'; /* just in case */ # ifdef CL_THREAD_SAFE pthread_mutex_unlock(&cli_strerror_mutex); #endif diff --git a/libclamav/xar.c b/libclamav/xar.c index ba0f32ad7..8dcb82893 100644 --- a/libclamav/xar.c +++ b/libclamav/xar.c @@ -644,7 +644,6 @@ int cli_scanxar(cli_ctx *ctx) if (blockp == NULL) { char errbuff[128]; cli_strerror(errno, errbuff, sizeof(errbuff)); - errbuff[sizeof(errbuff)-1] = '\0'; cli_errmsg("cli_scanxar: Can't read %li bytes @ %li, errno:%s.\n", length, at, &errbuff); rc = CL_EREAD; @@ -680,7 +679,6 @@ int cli_scanxar(cli_ctx *ctx) if (lz.next_in == NULL) { char errbuff[128]; cli_strerror(errno, errbuff, sizeof(errbuff)); - errbuff[sizeof(errbuff)-1] = '\0'; cli_errmsg("cli_scanxar: Can't read %li bytes @ %li, errno: %s.\n", length, at, &errbuff); rc = CL_EREAD; @@ -756,7 +754,6 @@ int cli_scanxar(cli_ctx *ctx) if (!(blockp = (void*)fmap_need_off_once(map, at, length))) { char errbuff[128]; cli_strerror(errno, errbuff, sizeof(errbuff)); - errbuff[sizeof(errbuff)-1] = '\0'; cli_errmsg("cli_scanxar: Can't read %li bytes @ %li, errno:%s.\n", length, at, &errbuff); rc = CL_EREAD;