Hide Forgot
static int object_key_get ( hdb_handle_t object_handle, const void *key_name, size_t key_len, void **value, size_t *value_len) { objdb_value_types_t t; int ret; char *key_name_str = (char*)key_name; char *key_name_terminated = NULL; if (key_name_str[key_len-1] != '\0') { key_name_terminated = malloc (key_len + 1); memcpy (key_name_terminated, key_name, key_len); key_name_terminated[key_len] = '\0'; key_name_str = key_name_terminated; } ret = object_key_get_typed(object_handle, key_name_str, value, value_len, &t); if (key_name_terminated) { free (key_name_terminated); } return ret; } the malloc return is not checked and it could possibly leads to crash instead of returning graceful error.... tho you are doomed anyway if that malloc fails.. :)
Another problem found by Fabio: uid_determine and gid_determine in corosync (flatiron) use a malloc but you don't check for errors there