Check for NULL pointer in TemplateSource.h

calloc can return NULL so check for NULL pointer in CLASS##_new and
CLASS##_dup.
This commit is contained in:
Fabrice Fontaine 2012-03-08 17:36:45 +01:00
parent 666bc7392b
commit beae2ea332
3 changed files with 15 additions and 3 deletions

View File

@ -2,6 +2,13 @@
Version 1.8.0 Version 1.8.0
******************************************************************************* *******************************************************************************
2012-03-08 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Check for NULL pointer in TemplateSource.h
calloc can return NULL so check for NULL pointer in CLASS##_new and
CLASS##_dup.
2012-03-08 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com> 2012-03-08 Fabrice Fontaine <fabrice.fontaine(at)orange-ftgroup.com>
Replace strcpy with strncpy in get_hoststr Replace strcpy with strncpy in get_hoststr

View File

@ -244,6 +244,8 @@ TEMPLATE_DECLARATION_STRUCT(CLASS)
CLASS *CLASS##_new() \ CLASS *CLASS##_new() \
{ \ { \
struct S##CLASS *p = calloc(1, sizeof (struct S##CLASS)); \ struct S##CLASS *p = calloc(1, sizeof (struct S##CLASS)); \
\
if (!p) return NULL; \
\ \
EXPAND_CLASS_MEMBERS(CLASS) \ EXPAND_CLASS_MEMBERS(CLASS) \
\ \
@ -287,6 +289,8 @@ TEMPLATE_DEFINITION_DESTRUCTOR(CLASS)
CLASS *CLASS##_dup(const CLASS *q) \ CLASS *CLASS##_dup(const CLASS *q) \
{ \ { \
CLASS *p = CLASS##_new(); \ CLASS *p = CLASS##_new(); \
\
if (!p) return NULL; \
\ \
CLASS##_assign(p, q); \ CLASS##_assign(p, q); \
\ \

View File

@ -699,14 +699,15 @@ static UPNP_INLINE void handle_query_variable(
err_code = SOAP_INVALID_VAR; err_code = SOAP_INVALID_VAR;
err_str = Soap_Invalid_Var; err_str = Soap_Invalid_Var;
if (get_var_name(xml_doc, var_name) != 0) if (variable == NULL || get_var_name(xml_doc, var_name) != 0)
goto error_handler; goto error_handler;
/* get info for event */ /* get info for event */
if (get_device_info(request, 1, xml_doc, err_code = get_device_info(request, 1, xml_doc,
info->foreign_sockaddr.ss_family, info->foreign_sockaddr.ss_family,
(UpnpString *)UpnpStateVarRequest_get_DevUDN(variable), (UpnpString *)UpnpStateVarRequest_get_DevUDN(variable),
(UpnpString *)UpnpStateVarRequest_get_ServiceID(variable), (UpnpString *)UpnpStateVarRequest_get_ServiceID(variable),
&soap_event_callback, &cookie) != 0) &soap_event_callback, &cookie);
if (err_code != UPNP_E_SUCCESS)
goto error_handler; goto error_handler;
UpnpStateVarRequest_set_ErrCode(variable, UPNP_E_SUCCESS); UpnpStateVarRequest_set_ErrCode(variable, UPNP_E_SUCCESS);
UpnpStateVarRequest_strcpy_StateVarName(variable, var_name); UpnpStateVarRequest_strcpy_StateVarName(variable, var_name);