From 383ff711d274ead9ee0e111aaee093c2016f043c Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Fri, 15 May 2009 21:07:18 +0000 Subject: [PATCH] cleanup msvc code analysis warnings git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13366 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_xml.h | 2 +- src/switch_utils.c | 2 ++ src/switch_xml.c | 10 +++++++--- w32/Library/FreeSwitchCore.2008.vcproj | 16 ++++++++++++++++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/include/switch_xml.h b/src/include/switch_xml.h index 96639d4a88..1187b89d4f 100644 --- a/src/include/switch_xml.h +++ b/src/include/switch_xml.h @@ -240,7 +240,7 @@ SWITCH_DECLARE(const char *) switch_xml_error(_In_ switch_xml_t xml); ///\brief returns a new empty switch_xml structure with the given root tag name ///\param name the name of the new root tag -SWITCH_DECLARE(switch_xml_t) switch_xml_new(_In_z_ const char *name); +SWITCH_DECLARE(switch_xml_t) switch_xml_new(_In_opt_z_ const char *name); ///\brief wrapper for switch_xml_new() that strdup()s name ///\param name the name of the root diff --git a/src/switch_utils.c b/src/switch_utils.c index 5829140098..59b0b66c17 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -83,6 +83,8 @@ SWITCH_DECLARE(switch_status_t) switch_frame_dup(switch_frame_t *orig, switch_fr switch_frame_t *new_frame; new_frame = malloc(sizeof(*new_frame)); + + switch_assert(new_frame); *new_frame = *orig; switch_set_flag(new_frame, SFF_DYNAMIC); diff --git a/src/switch_xml.c b/src/switch_xml.c index eccaa630a6..4103009e2e 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -391,17 +391,17 @@ SWITCH_DECLARE(const char *) switch_xml_attr(switch_xml_t xml, const char *attr) if (!xml || !xml->attr) return NULL; - while (xml->attr[i] && strcmp(attr, xml->attr[i])) + while (xml->attr[i] && attr && strcmp(attr, xml->attr[i])) i += 2; if (xml->attr[i]) return xml->attr[i + 1]; /* found attribute */ while (root->xml.parent) root = (switch_xml_root_t) root->xml.parent; /* root tag */ - for (i = 0; root->attr[i] && strcmp(xml->name, root->attr[i][0]); i++); + for (i = 0; root->attr[i] && xml->name && strcmp(xml->name, root->attr[i][0]); i++); if (!root->attr[i]) return NULL; /* no matching default attributes */ - while (root->attr[i][j] && strcmp(attr, root->attr[i][j])) + while (root->attr[i][j] && attr && strcmp(attr, root->attr[i][j])) j += 3; return (root->attr[i][j]) ? root->attr[i][j + 1] : NULL; /* found default */ } @@ -2140,6 +2140,7 @@ SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml, switch_bool_t prn_head char *r, *s; switch_mutex_lock(XML_GEN_LOCK); s = (char *)malloc(SWITCH_XML_BUFSIZE); + switch_assert(s); r = switch_xml_toxml_buf(xml, s, SWITCH_XML_BUFSIZE, 0, prn_header); switch_mutex_unlock(XML_GEN_LOCK); return r; @@ -2251,6 +2252,9 @@ tailrecurse: /*switch_xml_free(xml->ordered);*/ if (!xml->parent) { /* free root tag allocations */ +#if (_MSC_VER >= 1400) // VC8+ + __analysis_assume(sizeof(root->ent) > 44); /* tail recursion confuses code analysis */ +#endif for (i = 10; root->ent[i]; i += 2) /* 0 - 9 are default entities (<>&"') */ if ((s = root->ent[i + 1]) < root->s || s > root->e) free(s); diff --git a/w32/Library/FreeSwitchCore.2008.vcproj b/w32/Library/FreeSwitchCore.2008.vcproj index d93f12baee..c50b511aeb 100644 --- a/w32/Library/FreeSwitchCore.2008.vcproj +++ b/w32/Library/FreeSwitchCore.2008.vcproj @@ -713,6 +713,22 @@ + + + + + +