mirror of
https://github.com/ipxe/ipxe
synced 2025-12-20 03:55:46 +03:00
[settings] Eliminate variable-length stack allocation
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user