From 9d456cf1b0d78f0f566fd68bd6cc09e2e6dcef71 Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Thu, 9 Oct 2014 11:04:29 +0200 Subject: [PATCH] zscanner: remove possible buffer overflow with realpath --- src/zscanner/scanner.c.g2 | 4 ++-- src/zscanner/scanner.c.t0 | 4 ++-- src/zscanner/scanner.rl | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/zscanner/scanner.c.g2 b/src/zscanner/scanner.c.g2 index 342a717bd..8072cdf55 100644 --- a/src/zscanner/scanner.c.g2 +++ b/src/zscanner/scanner.c.g2 @@ -73128,8 +73128,8 @@ int zs_scanner_parse_file(zs_scanner_t *s, } // Get absolute path of the zone file. - if (realpath(file_name, (char*)(s->buffer)) != NULL) { - char *full_name = strdup((char*)(s->buffer)); + char *full_name = realpath(file_name, NULL); + if (full_name != NULL) { free(s->path); s->path = strdup(dirname(full_name)); free(full_name); diff --git a/src/zscanner/scanner.c.t0 b/src/zscanner/scanner.c.t0 index e793fb833..684d05d52 100644 --- a/src/zscanner/scanner.c.t0 +++ b/src/zscanner/scanner.c.t0 @@ -7449,8 +7449,8 @@ int zs_scanner_parse_file(zs_scanner_t *s, } // Get absolute path of the zone file. - if (realpath(file_name, (char*)(s->buffer)) != NULL) { - char *full_name = strdup((char*)(s->buffer)); + char *full_name = realpath(file_name, NULL); + if (full_name != NULL) { free(s->path); s->path = strdup(dirname(full_name)); free(full_name); diff --git a/src/zscanner/scanner.rl b/src/zscanner/scanner.rl index e53e041c0..506854f52 100644 --- a/src/zscanner/scanner.rl +++ b/src/zscanner/scanner.rl @@ -296,8 +296,8 @@ int zs_scanner_parse_file(zs_scanner_t *s, } // Get absolute path of the zone file. - if (realpath(file_name, (char*)(s->buffer)) != NULL) { - char *full_name = strdup((char*)(s->buffer)); + char *full_name = realpath(file_name, NULL); + if (full_name != NULL) { free(s->path); s->path = strdup(dirname(full_name)); free(full_name); -- GitLab