hash_value = ha_strdup(src_subsys);
hash_value = strdup(src_subsys);
generate_hash_value(const char *src_node, const char *src_subsys){    int ref_len;    char *hash_value;    if(src_node == NULL || src_subsys == NULL) {	    return NULL;    }    if(strcmp("dc", src_subsys) == 0)    {	    hash_value = ha_strdup(src_subsys);	    if (!hash_value) {		    cl_log(LOG_ERR, "memory allocation failed in "				    "generate_hash_value()\n");		    return NULL;		    }	    return hash_value;    }        ref_len = strlen(src_subsys) + strlen(src_node) + 2;    hash_value = (char*)ha_malloc(sizeof(char)*(ref_len));    if (!hash_value) {	    cl_log(LOG_ERR, "memory allocation failed in "			    "generate_hash_value()\n");	    return NULL;    }    snprintf(hash_value, ref_len-1, "%s_%s", src_node, src_subsys);    hash_value[ref_len-1] = '\0';// i want to make sure it is null terminated    cl_log(LOG_INFO, "created hash value: (%s)", hash_value);    return hash_value;}