diff options
| author | Ingo Molnar <mingo@kernel.org> | 2012-12-07 12:15:33 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2012-12-07 12:15:33 +0100 | 
| commit | 222e82bef4bd520a31d48c31ab24e49dd46daa46 (patch) | |
| tree | b6e73cad8e0b3a1c3e1acc537789e97aadaefa92 /usr/gen_init_cpio.c | |
| parent | 38ca9c927c7d3db61f57e3d3a9334958c3af6e9a (diff) | |
| parent | 18a2f371f5edf41810f6469cb9be39931ef9deb9 (diff) | |
Merge branch 'linus' into sched/core
Pick up the autogroups fix and other fixes.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'usr/gen_init_cpio.c')
| -rw-r--r-- | usr/gen_init_cpio.c | 43 | 
1 files changed, 23 insertions, 20 deletions
diff --git a/usr/gen_init_cpio.c b/usr/gen_init_cpio.c index af0f22fb1ef7..aca6edcbbc6f 100644 --- a/usr/gen_init_cpio.c +++ b/usr/gen_init_cpio.c @@ -303,7 +303,7 @@ static int cpio_mkfile(const char *name, const char *location,  	int retval;  	int rc = -1;  	int namesize; -	int i; +	unsigned int i;  	mode |= S_IFREG; @@ -381,25 +381,28 @@ error:  static char *cpio_replace_env(char *new_location)  { -       char expanded[PATH_MAX + 1]; -       char env_var[PATH_MAX + 1]; -       char *start; -       char *end; - -       for (start = NULL; (start = strstr(new_location, "${")); ) { -               end = strchr(start, '}'); -               if (start < end) { -                       *env_var = *expanded = '\0'; -                       strncat(env_var, start + 2, end - start - 2); -                       strncat(expanded, new_location, start - new_location); -                       strncat(expanded, getenv(env_var), PATH_MAX); -                       strncat(expanded, end + 1, PATH_MAX); -                       strncpy(new_location, expanded, PATH_MAX); -               } else -                       break; -       } - -       return new_location; +	char expanded[PATH_MAX + 1]; +	char env_var[PATH_MAX + 1]; +	char *start; +	char *end; + +	for (start = NULL; (start = strstr(new_location, "${")); ) { +		end = strchr(start, '}'); +		if (start < end) { +			*env_var = *expanded = '\0'; +			strncat(env_var, start + 2, end - start - 2); +			strncat(expanded, new_location, start - new_location); +			strncat(expanded, getenv(env_var), +				PATH_MAX - strlen(expanded)); +			strncat(expanded, end + 1, +				PATH_MAX - strlen(expanded)); +			strncpy(new_location, expanded, PATH_MAX); +			new_location[PATH_MAX] = 0; +		} else +			break; +	} + +	return new_location;  }  | 
