ldb:pyldb.c - most of the times "time_t" is defined as "long int"
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Sat, 6 Nov 2010 15:29:27 +0000 (16:29 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Mon, 8 Nov 2010 10:39:05 +0000 (10:39 +0000)
Therefore use a signed long int for conversions.

http://stackoverflow.com/questions/471248/what-is-ultimately-a-time-t-typedef-to

source4/lib/ldb/pyldb.c

index 794708b2e3e15fde14d8751728d31f69a99d62b6..2f87b8cdc3a5c8549b58de14338201613d429eff 100644 (file)
@@ -2587,14 +2587,14 @@ static PyObject *py_register_module(PyObject *module, PyObject *args)
 
 static PyObject *py_timestring(PyObject *module, PyObject *args)
 {
-       time_t t;
-       unsigned long val;
+       /* most times "time_t" is a signed integer type with 32 or 64 bit:
+        * http://stackoverflow.com/questions/471248/what-is-ultimately-a-time-t-typedef-to */
+       long int t_val;
        char *tresult;
        PyObject *ret;
-       if (!PyArg_ParseTuple(args, "l", &val))
+       if (!PyArg_ParseTuple(args, "l", &t_val))
                return NULL;
-       t = (time_t)val;
-       tresult = ldb_timestring(NULL, t);
+       tresult = ldb_timestring(NULL, (time_t) t_val);
        ret = PyString_FromString(tresult);
        talloc_free(tresult);
        return ret;