mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-13 20:47:46 +02:00
Plug mem leaks in parse_value_from_blob
The result of read_string() was leaked. Bug #618615.
This commit is contained in:
@@ -902,6 +902,7 @@ parse_value_from_blob (GMemoryInputStream *mis,
|
|||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
ret = g_variant_new_string (v);
|
ret = g_variant_new_string (v);
|
||||||
|
g_free (v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_variant_type_equal (type, G_VARIANT_TYPE_OBJECT_PATH))
|
else if (g_variant_type_equal (type, G_VARIANT_TYPE_OBJECT_PATH))
|
||||||
@@ -925,9 +926,11 @@ parse_value_from_blob (GMemoryInputStream *mis,
|
|||||||
G_IO_ERROR_INVALID_ARGUMENT,
|
G_IO_ERROR_INVALID_ARGUMENT,
|
||||||
_("Parsed value `%s' is not a valid D-Bus object path"),
|
_("Parsed value `%s' is not a valid D-Bus object path"),
|
||||||
v);
|
v);
|
||||||
|
g_free (v);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
ret = g_variant_new_object_path (v);
|
ret = g_variant_new_object_path (v);
|
||||||
|
g_free (v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_variant_type_equal (type, G_VARIANT_TYPE_SIGNATURE))
|
else if (g_variant_type_equal (type, G_VARIANT_TYPE_SIGNATURE))
|
||||||
@@ -949,9 +952,11 @@ parse_value_from_blob (GMemoryInputStream *mis,
|
|||||||
G_IO_ERROR_INVALID_ARGUMENT,
|
G_IO_ERROR_INVALID_ARGUMENT,
|
||||||
_("Parsed value `%s' is not a valid D-Bus signature"),
|
_("Parsed value `%s' is not a valid D-Bus signature"),
|
||||||
v);
|
v);
|
||||||
|
g_free (v);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
ret = g_variant_new_signature (v);
|
ret = g_variant_new_signature (v);
|
||||||
|
g_free (v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_variant_type_is_array (type))
|
else if (g_variant_type_is_array (type))
|
||||||
@@ -1110,9 +1115,11 @@ parse_value_from_blob (GMemoryInputStream *mis,
|
|||||||
G_IO_ERROR_INVALID_ARGUMENT,
|
G_IO_ERROR_INVALID_ARGUMENT,
|
||||||
_("Parsed value `%s' for variant is not a valid D-Bus signature"),
|
_("Parsed value `%s' for variant is not a valid D-Bus signature"),
|
||||||
sig);
|
sig);
|
||||||
|
g_free (sig);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
variant_type = g_variant_type_new (sig);
|
variant_type = g_variant_type_new (sig);
|
||||||
|
g_free (sig);
|
||||||
value = parse_value_from_blob (mis,
|
value = parse_value_from_blob (mis,
|
||||||
dis,
|
dis,
|
||||||
variant_type,
|
variant_type,
|
||||||
|
Reference in New Issue
Block a user