From: Thomas Vander Stichele Date: Sat, 18 Apr 2009 21:52:08 +0000 (+0200) Subject: TIME_ARGS: Catch bad input. Fixes #579455 X-Git-Tag: 1.19.3~485^2~486 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12a210c6137aaf2958db8f0a570ef00711f55ffa;p=platform%2Fupstream%2Fgstreamer.git TIME_ARGS: Catch bad input. Fixes #579455 --- diff --git a/gst/gst.override b/gst/gst.override index c6e5410..c83c9e2 100644 --- a/gst/gst.override +++ b/gst/gst.override @@ -880,6 +880,9 @@ _wrap_GST_TIME_ARGS(PyObject *self, PyObject *args, PyObject *kwargs) if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:time_to_string", kwlist, &py_time)) return NULL; time = PyInt_AsUnsignedLongLongMask(py_time); + if (PyErr_Occurred ()) + return NULL; + if (GST_CLOCK_TIME_IS_VALID (time)) ret = g_strdup_printf("%"GST_TIME_FORMAT, GST_TIME_ARGS(time)); else diff --git a/testsuite/test_gst.py b/testsuite/test_gst.py new file mode 100644 index 0000000..6ad50f4 --- /dev/null +++ b/testsuite/test_gst.py @@ -0,0 +1,36 @@ +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 +# +# Copyright (C) 2009 Thomas Vander Stichele +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +from common import gst, TestCase, unittest + +class TimeArgsTest(TestCase): + def testNoneTime(self): + self.assertRaises(TypeError, gst.TIME_ARGS, None) + + def testStringTime(self): + self.assertRaises(TypeError, gst.TIME_ARGS, "String") + + def testClockTimeNone(self): + self.assertEquals(gst.TIME_ARGS(gst.CLOCK_TIME_NONE), 'CLOCK_TIME_NONE') + + def testOneSecond(self): + self.assertEquals(gst.TIME_ARGS(gst.SECOND), '0:00:01.000000000') + +if __name__ == "__main__": + unittest.main()