mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2025-12-10 07:44:41 +01:00
Fix probable crashes
This commit is contained in:
parent
468b6803cd
commit
c5cf3cd6e3
4 changed files with 2 additions and 67 deletions
1
http.c
1
http.c
|
|
@ -28,7 +28,6 @@
|
|||
#define HTTP_GET_HDR_LEN 512
|
||||
|
||||
static struct http_client http_c;
|
||||
|
||||
static CURL *curl = NULL;
|
||||
static bool curl_glob_init = false;
|
||||
char *fc_cookies = "/tmp/icwmp_cookies";
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ int xml_prepare_msg_out(struct session *session);
|
|||
int xml_prepare_lwnotification_message(char **msg_out);
|
||||
int xml_set_cwmp_id_rpc_cpe(struct session *session);
|
||||
int xml_recreate_namespace(mxml_node_t *tree);
|
||||
const char *whitespace_cb(mxml_node_t *node, int where);
|
||||
int xml_set_cwmp_id(struct session *session);
|
||||
int xml_send_message(struct cwmp *cwmp, struct session *session, struct rpc *rpc);
|
||||
mxml_node_t *mxmlFindElementOpaque(mxml_node_t *node, mxml_node_t *top, const char *text, int descend);
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ function print_tag_value()
|
|||
tag=$2
|
||||
output=$(sed -n "/<"$rpc_method">/,/<\/"$rpc_method">/p" $icwmp_log_file)
|
||||
xml_data=$(echo $output | grep -o "<"$rpc_method">.*<\/"$rpc_method">")
|
||||
|
||||
tag_value=`grep -oPm1 "(?<=<$tag>)[^<]+" <<< "$xml_data"`
|
||||
echo $tag_value
|
||||
}
|
||||
|
|
|
|||
66
xml.c
66
xml.c
|
|
@ -316,70 +316,6 @@ int xml_set_cwmp_id_rpc_cpe(struct session *session)
|
|||
return 0;
|
||||
}
|
||||
|
||||
const char *get_node_tab_space(mxml_node_t *node)
|
||||
{
|
||||
CWMP_LOG(INFO, "#### %s start %d ####", __FUNCTION__, __LINE__);
|
||||
static char tab_space[10 * sizeof(CWMP_MXML_TAB_SPACE) + 1];
|
||||
int count = 0;
|
||||
|
||||
memset(tab_space, 0, sizeof(tab_space));
|
||||
while ((node = mxmlGetParent(node))) {
|
||||
count = count + 1;
|
||||
}
|
||||
|
||||
if (count) {
|
||||
snprintf(tab_space, sizeof(tab_space), "%*s", (int)(count * sizeof(CWMP_MXML_TAB_SPACE)), "");
|
||||
}
|
||||
|
||||
CWMP_LOG(INFO, "#### %s exit %d count %d ####", __FUNCTION__, __LINE__, count);
|
||||
return tab_space;
|
||||
}
|
||||
|
||||
const char *whitespace_cb(mxml_node_t *node, int where)
|
||||
{
|
||||
CWMP_LOG(INFO, "#### %s start ####", __FUNCTION__);
|
||||
if (node == NULL) {
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (mxmlGetType(node) != MXML_ELEMENT) {
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
switch (where) {
|
||||
case MXML_WS_BEFORE_CLOSE:
|
||||
if (mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT) {
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return get_node_tab_space(node);
|
||||
case MXML_WS_BEFORE_OPEN:
|
||||
if (where == MXML_WS_BEFORE_CLOSE && mxmlGetFirstChild(node) && mxmlGetType(mxmlGetFirstChild(node)) != MXML_ELEMENT) {
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return get_node_tab_space(node);
|
||||
case MXML_WS_AFTER_OPEN:
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return ((mxmlGetFirstChild(node) == NULL || mxmlGetType(mxmlGetFirstChild(node)) == MXML_ELEMENT) ? "\n" : NULL);
|
||||
case MXML_WS_AFTER_CLOSE:
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return "\n";
|
||||
default:
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CWMP_LOG(INFO, "#### %s exit %d ####", __FUNCTION__, __LINE__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *xml_get_cwmp_version(int version)
|
||||
{
|
||||
static char versions[60];
|
||||
|
|
@ -441,7 +377,7 @@ int xml_prepare_lwnotification_message(char **msg_out)
|
|||
if (!lw_tree)
|
||||
goto error;
|
||||
|
||||
*msg_out = mxmlSaveAllocString(lw_tree, whitespace_cb);
|
||||
*msg_out = mxmlSaveAllocString(lw_tree, MXML_NO_CALLBACK);
|
||||
|
||||
mxmlDelete(lw_tree);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue