373
373
static char *cpio_replace_env(char *new_location)
375
char expanded[PATH_MAX + 1];
376
char env_var[PATH_MAX + 1];
380
for (start = NULL; (start = strstr(new_location, "${")); ) {
381
end = strchr(start, '}');
383
*env_var = *expanded = '\0';
384
strncat(env_var, start + 2, end - start - 2);
385
strncat(expanded, new_location, start - new_location);
386
strncat(expanded, getenv(env_var), PATH_MAX);
387
strncat(expanded, end + 1, PATH_MAX);
388
strncpy(new_location, expanded, PATH_MAX);
375
char expanded[PATH_MAX + 1];
376
char env_var[PATH_MAX + 1];
380
for (start = NULL; (start = strstr(new_location, "${")); ) {
381
end = strchr(start, '}');
383
*env_var = *expanded = '\0';
384
strncat(env_var, start + 2, end - start - 2);
385
strncat(expanded, new_location, start - new_location);
386
strncat(expanded, getenv(env_var),
387
PATH_MAX - strlen(expanded));
388
strncat(expanded, end + 1,
389
PATH_MAX - strlen(expanded));
390
strncpy(new_location, expanded, PATH_MAX);
391
new_location[PATH_MAX] = 0;