summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Ferrandis <ludovic.ferrandis@intel.com>2013-07-11 12:24:57 +0200
committerJens Georg <jensg@openismus.com>2013-07-30 10:01:13 +0200
commitc460839c00c5b2540d464f3479d3c532351c2398 (patch)
tree39ae206854d464dab47bc95d2a28936c63bf8192
parent34fee0402931e8374ccbcaba2403ae82d2d9e8a7 (diff)
downloadgupnp-dlna-c460839c00c5b2540d464f3479d3c532351c2398.tar.gz
Fix a potential crash if gupnp_dlna_value_list_new failed
https://bugzilla.gnome.org/show_bug.cgi?id=704096
-rw-r--r--libgupnp-dlna/gupnp-dlna-value-list.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/libgupnp-dlna/gupnp-dlna-value-list.c b/libgupnp-dlna/gupnp-dlna-value-list.c
index 0582978..6c451ec 100644
--- a/libgupnp-dlna/gupnp-dlna-value-list.c
+++ b/libgupnp-dlna/gupnp-dlna-value-list.c
@@ -150,27 +150,26 @@ GUPnPDLNAValueList *
gupnp_dlna_value_list_copy (GUPnPDLNAValueList *list)
{
GUPnPDLNAValueList *dup;
+ GList *iter;
- if (list) {
- GList *iter;
+ g_return_val_if_fail (list != NULL, NULL);
- dup = gupnp_dlna_value_list_new (list->type);
- for (iter = list->values; iter != NULL; iter = iter->next) {
- GUPnPDLNAValue *base = (GUPnPDLNAValue *) iter->data;
- GUPnPDLNAValue *copy;
+ dup = gupnp_dlna_value_list_new (list->type);
- if (base == NULL)
- continue;
+ g_return_val_if_fail (dup != NULL, NULL);
- copy = gupnp_dlna_value_copy (base, list->type);
- if (copy != NULL)
- dup->values = g_list_prepend (dup->values,
- copy);
- }
- dup->values = g_list_reverse (dup->values);
- } else {
- dup = NULL;
- }
+ for (iter = list->values; iter != NULL; iter = iter->next) {
+ GUPnPDLNAValue *base = (GUPnPDLNAValue *) iter->data;
+ GUPnPDLNAValue *copy;
+
+ if (base == NULL)
+ continue;
+
+ copy = gupnp_dlna_value_copy (base, list->type);
+ if (copy != NULL)
+ dup->values = g_list_prepend (dup->values, copy);
+ }
+ dup->values = g_list_reverse (dup->values);
return dup;
}