projects
/
project
/
uci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
uci: fix Lua finding
[project/uci.git]
/
ucimap.c
diff --git
a/ucimap.c
b/ucimap.c
index 16ce56ad56f95b285dae58ed579928d1d58f7f98..b4f9518f5b5af5a4d7d294389b650d6576f71a4d 100644
(file)
--- a/
ucimap.c
+++ b/
ucimap.c
@@
-13,7
+13,7
@@
*/
/*
*/
/*
- * This file contains ucimap, an API for mapping UCI to C data structures
+ * This file contains ucimap, an API for mapping UCI to C data structures
*/
#include <strings.h>
*/
#include <strings.h>
@@
-275,6
+275,8
@@
ucimap_resize_list(struct ucimap_section_data *sd, struct ucimap_list **list, in
if (!*list) {
new = calloc(1, size);
if (!*list) {
new = calloc(1, size);
+ if (!new)
+ return -ENOMEM;
ucimap_add_alloc(sd, new);
goto set;
ucimap_add_alloc(sd, new);
goto set;
@@
-293,6
+295,9
@@
realloc:
offset = (items - (*list)->size) * sizeof(union ucimap_data);
a->ptr = realloc(a->ptr, size);
offset = (items - (*list)->size) * sizeof(union ucimap_data);
a->ptr = realloc(a->ptr, size);
+ if (!a->ptr)
+ return -ENOMEM;
+
if (offset)
memset((char *) a->ptr + offset, 0, size - offset);
new = a->ptr;
if (offset)
memset((char *) a->ptr + offset, 0, size - offset);
new = a->ptr;
@@
-309,6
+314,7
@@
ucimap_add_fixup(struct ucimap_section_data *sd, union ucimap_data *data, struct
struct ucimap_fixup *f, tmp;
struct uci_map *map = sd->map;
struct ucimap_fixup *f, tmp;
struct uci_map *map = sd->map;
+ tmp.next = NULL;
tmp.sm = om->data.sm;
tmp.name = str;
tmp.type = om->type;
tmp.sm = om->data.sm;
tmp.name = str;
tmp.type = om->type;
@@
-707,8
+713,8
@@
ucimap_parse_section(struct uci_map *map, struct uci_sectionmap *sm, struct ucim
return 0;
error_mem:
return 0;
error_mem:
- if (sd->allocmap)
-
free(sd->allocmap);
+ free(sd->alloc_custom);
+ free(sd->allocmap);
free(sd);
return UCI_ERR_MEM;
free(sd);
return UCI_ERR_MEM;