diff options
Diffstat (limited to 'kexec')
-rw-r--r-- | kexec/fs2dt.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c index 6ed2399..79aa0f3 100644 --- a/kexec/fs2dt.c +++ b/kexec/fs2dt.c @@ -524,19 +524,21 @@ static void dt_copy_old_root_param(void) strcpy(filename, pathname); strcat(filename, "bootargs"); fp = fopen(filename, "r"); - if (fp) { - if (getline(&last_cmdline, &len, fp) == -1) - die("unable to read %s\n", filename); - - p = strstr(last_cmdline, "root="); - if (p) { - old_param = strtok(p, " "); - len = strlen(local_cmdline); - if (len != 0) - strcat(local_cmdline, " "); - strcat(local_cmdline, old_param); - } + if (!fp) + return; + + if (getline(&last_cmdline, &len, fp) == -1) + die("unable to read %s\n", filename); + + p = strstr(last_cmdline, "root="); + if (p) { + old_param = strtok(p, " "); + len = strlen(local_cmdline); + if (len != 0) + strcat(local_cmdline, " "); + strcat(local_cmdline, old_param); } + if (last_cmdline) free(last_cmdline); |