382
382
static char *cpio_replace_env(char *new_location)
384
char expanded[PATH_MAX + 1];
385
char env_var[PATH_MAX + 1];
389
for (start = NULL; (start = strstr(new_location, "${")); ) {
390
end = strchr(start, '}');
392
*env_var = *expanded = '\0';
393
strncat(env_var, start + 2, end - start - 2);
394
strncat(expanded, new_location, start - new_location);
395
strncat(expanded, getenv(env_var), PATH_MAX);
396
strncat(expanded, end + 1, PATH_MAX);
397
strncpy(new_location, expanded, PATH_MAX);
384
char expanded[PATH_MAX + 1];
385
char env_var[PATH_MAX + 1];
389
for (start = NULL; (start = strstr(new_location, "${")); ) {
390
end = strchr(start, '}');
392
*env_var = *expanded = '\0';
393
strncat(env_var, start + 2, end - start - 2);
394
strncat(expanded, new_location, start - new_location);
395
strncat(expanded, getenv(env_var),
396
PATH_MAX - strlen(expanded));
397
strncat(expanded, end + 1,
398
PATH_MAX - strlen(expanded));
399
strncpy(new_location, expanded, PATH_MAX);
400
new_location[PATH_MAX] = 0;