preload: don't cut the last char of the redirected path #14

Merged
merged 1 commit into from Apr 28, 2017
Jump to file or symbol
Failed to load files and symbols.
+4 −5
Split

preload: don't cut the last char of the redirected path

  • Loading branch information...
commit 0675d4cba6f7cc2df2505d2aad1737a373e469ea @3v1n0 3v1n0 committed Apr 28, 2017
View
@@ -149,15 +149,14 @@ redirect_path_full (const char *pathname, int check_parent, int only_if_absolute
int (*_access) (const char *pathname, int mode);
char *redirected_pathname;
int ret;
- int chop = 0;
char *slash = 0;
if (pathname == NULL) {
return NULL;
}
const char *preload_dir = saved_snapcraft_preload;
- const size_t preload_dir_len = saved_snapcraft_preload_len;
+ size_t preload_dir_len = MIN (PATH_MAX, saved_snapcraft_preload_len);
if (preload_dir == NULL) {
return strdup (pathname);
@@ -192,10 +191,10 @@ redirect_path_full (const char *pathname, int check_parent, int only_if_absolute
}
if (preload_dir[preload_dir_len - 1] == '/') {
- chop = 1;
+ preload_dir_len -= 1;
}
- strncpy (redirected_pathname, preload_dir, preload_dir_len - chop);
- redirected_pathname[preload_dir_len - chop - 1] = '\0';
+ strncpy (redirected_pathname, preload_dir, preload_dir_len);
+ redirected_pathname[preload_dir_len] = '\0';
if (pathname[0] != '/') {
size_t cursize = strlen (redirected_pathname);