summaryrefslogtreecommitdiff
path: root/cleopatre/devkit/plcdrv
diff options
context:
space:
mode:
authorYacine Belkadi2012-01-16 10:01:57 +0100
committerYacine Belkadi2012-02-01 13:46:22 +0100
commit3e9fb4156faf00c67d734bd06a9cc7f21445c214 (patch)
tree78a01146273c77f5dde4108141454772ae506879 /cleopatre/devkit/plcdrv
parent46b79eb1c2510c8c61023345064fc4e7e5be7031 (diff)
cleo/devkit/plcdrv: fix adding a custom boot param string, closes #2932
Commit 66ff0e3882a86fda04e8efc913bbf4be8261d945 removed the trailing whitespace in the default boot_params string. It forgot to handle the appending of a custom boot_params string. This commit fixes that.
Diffstat (limited to 'cleopatre/devkit/plcdrv')
-rw-r--r--cleopatre/devkit/plcdrv/arm/src/boot_params.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/cleopatre/devkit/plcdrv/arm/src/boot_params.c b/cleopatre/devkit/plcdrv/arm/src/boot_params.c
index 63ef4498b5..d33b0e7e87 100644
--- a/cleopatre/devkit/plcdrv/arm/src/boot_params.c
+++ b/cleopatre/devkit/plcdrv/arm/src/boot_params.c
@@ -153,25 +153,34 @@ static int plcdrv_add_default_boot_params(char *params_str)
*/
static int plcdrv_add_custom_boot_params(char *params_str)
{
- int len_custom;
+ int len;
- len_custom = strlen(custom_boot_params);
-
- if (len_custom == 0)
- {
+ if (strlen(custom_boot_params) == 0)
return 0;
- }
- if ((strlen(params_str) + len_custom + 1) > BOOT_PARAMS_STR_SIZE)
+ len = strlen(params_str);
+
+ if (len > 0)
{
- printk (KERN_ERR
- "Boot parameters string too long (after adding custom parameters)\n");
- return -1;
+ len += strlen(BOOT_PARAMS_DELIMITER);
+ if (len >= BOOT_PARAMS_STR_SIZE)
+ goto overflow;
+
+ strcat(params_str, BOOT_PARAMS_DELIMITER);
}
+ len += strlen(custom_boot_params);
+ if (len >= BOOT_PARAMS_STR_SIZE)
+ goto overflow;
+
strcat(params_str, custom_boot_params);
return 0;
+
+overflow:
+ printk (KERN_ERR
+ "Boot parameters string too long (after adding custom parameters)\n");
+ return -1;
}
/**