Fix change_dir() leaving appended slash in curr_dir on failure.

This commit is contained in:
Wayne Davison committed 2020-06-04 12:35:24 -07:00
1 parent 4c9fdb9f74
commit e633091d23
1 file changed
+2
+2
View File
@@ -1116,6 +1116,7 @@ int change_dir(const char *dir, int set_path_only)
skipped_chdir = set_path_only;
memcpy(curr_dir, dir, len + 1);
} else {
unsigned int save_dir_len = curr_dir_len;
if (curr_dir_len + 1 + len >= sizeof curr_dir) {
errno = ENAMETOOLONG;
return 0;
@@ -1125,6 +1126,7 @@ int change_dir(const char *dir, int set_path_only)
memcpy(curr_dir + curr_dir_len, dir, len + 1);
if (!set_path_only && chdir(curr_dir)) {
curr_dir_len = save_dir_len;
curr_dir[curr_dir_len] = '\0';
return 0;
}