Index: src/of.c =================================================================== --- src/of.c (revision 90) +++ src/of.c (working copy) @@ -3769,7 +3776,7 @@ static void OF_setprop (OF_env_t *OF_env) { unsigned char name[OF_NAMELEN_MAX], *namep; - unsigned char *value, *buffer; + unsigned char *value = NULL, *buffer; OF_node_t *node; OF_prop_t *prop; uint32_t phandle; @@ -3780,12 +3787,15 @@ ERROR("Cannot get pack %04x\n", phandle); return; } - value = malloc(len); - if (value == NULL) { + if (len && !(value = malloc(len))) { pushd(OF_env, -1); ERROR("%s: Cannot alloc property\n", __func__); return; } + if (!len && value) { + pushd(OF_env, -1); + ERROR("%s: NULL buffer for non-zero sized property!\n", __func__); + } for (i = 0; i < len; i++) value[i] = buffer[i]; prop = OF_property_set(OF_env, node, name, value, len);