TIME_ARGS: Catch bad input. Fixes #579455

This commit is contained in:
Thomas Vander Stichele 2009-04-18 23:52:08 +02:00 committed by Edward Hervey
parent ce5bcb30e1
commit 12a210c613
2 changed files with 39 additions and 0 deletions

View file

@ -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

36
testsuite/test_gst.py Normal file
View file

@ -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()