summaryrefslogtreecommitdiffstats
path: root/src/core/settings.c
diff options
context:
space:
mode:
authorSimon Rettberg2020-02-24 14:25:15 +0100
committerSimon Rettberg2020-02-24 14:25:15 +0100
commita77b33e5357278509ffde6284821682351c4d52a (patch)
treef57c48a8f3d2ff9102b1977f19867065db879fd1 /src/core/settings.c
parentMerge branch 'master' into openslx (diff)
parent[iscsi] Eliminate variable-length stack allocation in URI parsing (diff)
downloadipxe-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.c9
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;
}