mod_rayo: fix compiler error to nlsml.c from attempted coverity fix

This commit is contained in:
Chris Rienzo 2014-05-08 11:10:42 -04:00
parent ae5d876682
commit 752f7956f9
2 changed files with 26 additions and 6 deletions

View File

@ -1,6 +1,6 @@
/*
* mod_rayo for FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2013, Grasshopper
* Copyright (C) 2013-2014, Grasshopper
*
* Version: MPL 1.1
*
@ -318,20 +318,20 @@ static int cdata_hook(void *user_data, char *data, size_t len)
/**
* Parse the result, looking for noinput/nomatch/match
* @param result the NLSML result to parse
* @param nlsml_result the NLSML result to parse
* @param uuid optional UUID for logging
* @return true if successful
*/
enum nlsml_match_type nlsml_parse(const char *result, const char *uuid)
enum nlsml_match_type nlsml_parse(const char *nlsml_result, const char *uuid)
{
struct nlsml_parser parser = { 0 };
int result = NMT_BAD_XML;
iksparser *p = NULL;
parser.uuid = uuid;
if (!zstr(result)) {
if (!zstr(nlsml_result)) {
p = iks_sax_new(&parser, tag_hook, cdata_hook);
if (iks_parse(p, result, 0, 1) == IKS_OK) {
if (iks_parse(p, nlsml_result, 0, 1) == IKS_OK) {
/* check result */
if (parser.match) {
result = NMT_MATCH;
@ -353,8 +353,10 @@ enum nlsml_match_type nlsml_parse(const char *result, const char *uuid)
switch_log_printf(SWITCH_CHANNEL_UUID_LOG(parser.uuid), SWITCH_LOG_INFO, "Missing NLSML result\n");
}
end:
if ( p )
if ( p ) {
iks_parser_delete(p);
}
return result;
}

View File

@ -0,0 +1,18 @@
BASE=../../../../..
IKS_DIR=$(BASE)/libs/iksemel
IKS_LA=$(IKS_DIR)/src/libiksemel.la
LOCAL_CFLAGS += -I../ -I$(BASE)/libs/iksemel/include
LOCAL_OBJS= $(PCRE_LA) $(IKS_LA) main.o ../nlsml.o
LOCAL_SOURCES= main.c
include $(BASE)/build/modmake.rules
$(IKS_LA): $(IKS_DIR) $(IKS_DIR)/.update
@cd $(IKS_DIR) && $(MAKE)
@$(TOUCH_TARGET)
local_all:
libtool --mode=link gcc main.o ../nlsml.o -o test test_nlsml.la
local_clean:
-rm test