Hello, Make getcwd() calls safer.
Newer GCC complains that I didn't check return value from getcwd() ... -- Petr^2 Spacek
From 39940f692e42313c7301c12c49d76003482d7e11 Mon Sep 17 00:00:00 2001 From: Petr Spacek <[email protected]> Date: Tue, 18 Feb 2014 10:33:15 +0100 Subject: [PATCH] Make getcwd() calls safer. Signed-off-by: Petr Spacek <[email protected]> --- src/fs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fs.c b/src/fs.c index 44eebc141bb2a881c95c0f729271e6e1450c9cbe..a7582d0a51db5083c505e6f8fcbdf0725e9eb460 100644 --- a/src/fs.c +++ b/src/fs.c @@ -39,14 +39,14 @@ isc_result_t fs_dir_create(const char *dir_name) { isc_result_t result; - char dir_curr[PATH_MAX]; + char dir_curr[PATH_MAX + 1] = ""; isc_dir_t dir_handle; int ret; REQUIRE(dir_name != NULL); - strncpy(dir_curr, msg_getcwd_failed, sizeof(dir_curr)); - getcwd(dir_curr, sizeof(dir_curr)); + if (getcwd(dir_curr, sizeof(dir_curr) - 1) == NULL) + strncpy(dir_curr, msg_getcwd_failed, sizeof(dir_curr)); ret = mkdir(dir_name, 0700); if (ret == 0) result = ISC_R_SUCCESS; @@ -100,14 +100,14 @@ cleanup: isc_result_t fs_file_remove(const char *file_name) { isc_result_t result; - char dir_curr[PATH_MAX]; + char dir_curr[PATH_MAX + 1] = ""; result = isc_file_remove(file_name); if (result == ISC_R_FILENOTFOUND) result = ISC_R_SUCCESS; else if (result != ISC_R_SUCCESS) { - strncpy(dir_curr, msg_getcwd_failed, sizeof(dir_curr)); - getcwd(dir_curr, sizeof(dir_curr)); + if (getcwd(dir_curr, sizeof(dir_curr) - 1) == NULL) + strncpy(dir_curr, msg_getcwd_failed, sizeof(dir_curr)); log_error_r("unable to delete file '%s', working directory " "is '%s'", file_name, dir_curr); } -- 1.8.5.3
_______________________________________________ Freeipa-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/freeipa-devel
