From 8bf748a28e0abec29f68fda59a06670aee02f06a Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Fri, 26 May 2006 09:19:24 +0000 Subject: [PATCH] gst/gstvalue.c: Handle NULL input and output pointers silently as a failed conversion, rather than g_warnings. Original commit message from CVS: * gst/gstvalue.c: (gst_value_deserialize_fraction): Handle NULL input and output pointers silently as a failed conversion, rather than g_warnings. --- ChangeLog | 6 ++++++ gst/gstvalue.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b145007149..9b6f1fe973 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-05-26 Jan Schmidt + + * gst/gstvalue.c: (gst_value_deserialize_fraction): + Handle NULL input and output pointers silently as a failed conversion, + rather than g_warnings. + 2006-05-25 Wim Taymans * libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_start): diff --git a/gst/gstvalue.c b/gst/gstvalue.c index 5016c55702..0a06290f57 100644 --- a/gst/gstvalue.c +++ b/gst/gstvalue.c @@ -3389,11 +3389,17 @@ gst_value_deserialize_fraction (GValue * dest, const gchar * s) { gint num, den; - if (s && sscanf (s, "%d/%d", &num, &den) == 2) { + if (G_UNLIKELY (s == NULL)) + return FALSE; + + if (G_UNLIKELY (dest == NULL || !GST_VALUE_HOLDS_FRACTION (dest))) + return FALSE; + + if (sscanf (s, "%d/%d", &num, &den) == 2) { gst_value_set_fraction (dest, num, den); return TRUE; } - if (s && sscanf (s, "%d", &num) == 1) { + if (sscanf (s, "%d", &num) == 1) { gst_value_set_fraction (dest, num, 1); return TRUE; }