mirror of https://github.com/ipxe/ipxe.git
[settings] Eliminate variable-length stack allocation
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/106/head
parent
0a74321915
commit
446e8f14e8
|
@ -370,12 +370,14 @@ const char * settings_name ( struct settings *settings ) {
|
|||
static struct settings *
|
||||
parse_settings_name ( const char *name, get_child_settings_t get_child ) {
|
||||
struct settings *settings = &settings_root;
|
||||
char name_copy[ strlen ( name ) + 1 ];
|
||||
char *name_copy;
|
||||
char *subname;
|
||||
char *remainder;
|
||||
|
||||
/* Create modifiable copy of name */
|
||||
memcpy ( name_copy, name, sizeof ( name_copy ) );
|
||||
name_copy = strdup ( name );
|
||||
if ( ! name_copy )
|
||||
return NULL;
|
||||
remainder = name_copy;
|
||||
|
||||
/* Parse each name component in turn */
|
||||
|
@ -389,6 +391,9 @@ parse_settings_name ( const char *name, get_child_settings_t get_child ) {
|
|||
break;
|
||||
}
|
||||
|
||||
/* Free modifiable copy of name */
|
||||
free ( name_copy );
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue