[OpenBIOS] [v2 1/2] SPARC32: Remove limit on kernel command line length caused by using a static buffer
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Sat Apr 13 18:09:14 CEST 2013
Instead use strdup() so that we can dynamically allocate the string ourselves. As
reported by Rob Landley <rob at landley.net>.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
---
openbios-devel/arch/sparc32/openbios.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/openbios-devel/arch/sparc32/openbios.c b/openbios-devel/arch/sparc32/openbios.c
index 95a5d37..de23a6f 100644
--- a/openbios-devel/arch/sparc32/openbios.c
+++ b/openbios-devel/arch/sparc32/openbios.c
@@ -835,8 +835,7 @@ static void init_memory(void)
static void
arch_init( void )
{
- static char cmdline[128];
- int size = 0;
+ char *cmdline;
const char *kernel_cmdline;
uint32_t temp;
uint16_t machine_id;
@@ -897,11 +896,11 @@ arch_init( void )
kernel_cmdline = (const char *) fw_cfg_read_i32(FW_CFG_KERNEL_CMDLINE);
if (kernel_cmdline) {
- size = strlen(kernel_cmdline);
- memcpy(cmdline, kernel_cmdline, size);
+ cmdline = strdup(kernel_cmdline);
obp_arg.argv[1] = cmdline;
- }
- cmdline[size] = '\0';
+ } else {
+ cmdline = strdup("");
+ }
qemu_cmdline = (uint32_t)cmdline;
/* Setup nvram variables */
--
1.7.10.4
More information about the OpenBIOS
mailing list