summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-02-04 19:09:15 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-02-04 19:09:15 +0100
commitce961e341258dc9f78da3c0d64231cf1afdc4e63 (patch)
tree90c65241a72f55fbd67f58c05b091f714e4c2490 /lib
parent91d4a4264bc2dead4e3101c5064da35c78f4c89b (diff)
parentcf715885604004ccfc30bc4caa75d58a75bb02c7 (diff)
downloadbarebox-ce961e341258dc9f78da3c0d64231cf1afdc4e63.tar.gz
barebox-ce961e341258dc9f78da3c0d64231cf1afdc4e63.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'lib')
-rw-r--r--lib/parameter.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/parameter.c b/lib/parameter.c
index d337ef37c7..865ad9f431 100644
--- a/lib/parameter.c
+++ b/lib/parameter.c
@@ -114,7 +114,7 @@ int dev_param_set_generic(struct device_d *dev, struct param_d *p,
return 0;
}
p->value = strdup(val);
- return 0;
+ return p->value ? 0 : -ENOMEM;
}
static const char *param_get_generic(struct device_d *dev, struct param_d *p)
@@ -130,6 +130,10 @@ static int __dev_add_param(struct param_d *param, struct device_d *dev, const ch
if (get_param_by_name(dev, name))
return -EEXIST;
+ param->name = strdup(name);
+ if (!param->name)
+ return -ENOMEM;
+
if (set)
param->set = set;
else
@@ -139,7 +143,6 @@ static int __dev_add_param(struct param_d *param, struct device_d *dev, const ch
else
param->get = param_get_generic;
- param->name = strdup(name);
param->flags = flags;
param->dev = dev;
list_add_tail(&param->list, &dev->parameters);