[pygobject/pygobject-3-14] Avoid a silent long to int truncation



commit ae738492a66477a8fceb48794738864304c16fb5
Author: Rui Matos <tiagomatos gmail com>
Date:   Thu May 21 17:53:17 2015 +0200

    Avoid a silent long to int truncation
    
    If the python object contains a value bigger than MAXUINT we'd
    silently truncate it when assigning to 'val' and the if condition
    would always be true.
    
    This was caught by a coverity scan.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=749698

 gi/pygi-value.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gi/pygi-value.c b/gi/pygi-value.c
index 9d5d0ca..7fdf767 100644
--- a/gi/pygi-value.c
+++ b/gi/pygi-value.c
@@ -382,7 +382,7 @@ pyg_value_from_pyobject_with_error(GValue *value, PyObject *obj)
     case G_TYPE_UINT:
     {
         if (PYGLIB_PyLong_Check(obj)) {
-            guint val;
+            gulong val;
 
             /* check that number is not negative */
             if (PyLong_AsLongLong(obj) < 0)
@@ -390,7 +390,7 @@ pyg_value_from_pyobject_with_error(GValue *value, PyObject *obj)
 
             val = PyLong_AsUnsignedLong(obj);
             if (val <= G_MAXUINT)
-                g_value_set_uint(value, val);
+                g_value_set_uint(value, (guint) val);
             else
                 return -1;
         } else {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]