diff options
author | Simon Rettberg | 2020-02-24 14:25:15 +0100 |
---|---|---|
committer | Simon Rettberg | 2020-02-24 14:25:15 +0100 |
commit | a77b33e5357278509ffde6284821682351c4d52a (patch) | |
tree | f57c48a8f3d2ff9102b1977f19867065db879fd1 /src/core/settings.c | |
parent | Merge branch 'master' into openslx (diff) | |
parent | [iscsi] Eliminate variable-length stack allocation in URI parsing (diff) | |
download | ipxe-a77b33e5357278509ffde6284821682351c4d52a.tar.gz ipxe-a77b33e5357278509ffde6284821682351c4d52a.tar.xz ipxe-a77b33e5357278509ffde6284821682351c4d52a.zip |
Merge branch 'master' into openslx
Diffstat (limited to 'src/core/settings.c')
-rw-r--r-- | src/core/settings.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/settings.c b/src/core/settings.c index bfe618d9..d6ab6b20 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -371,12 +371,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 */ @@ -390,6 +392,9 @@ parse_settings_name ( const char *name, get_child_settings_t get_child ) { break; } + /* Free modifiable copy of name */ + free ( name_copy ); + return settings; } |