diff options
author | Rui Matos <tiagomatos@gmail.com> | 2015-05-21 17:53:17 +0200 |
---|---|---|
committer | Rui Matos <tiagomatos@gmail.com> | 2015-07-17 15:18:01 +0200 |
commit | ae738492a66477a8fceb48794738864304c16fb5 (patch) | |
tree | 6c84bd0ed9d2c5d4a5c15fad4a08476b94ba69e8 | |
parent | 0de827190e7575f7e1e339337b78c7d6e46957b4 (diff) | |
download | pygobject-3-14.tar.gz |
Avoid a silent long to int truncationpygobject-3-14
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
-rw-r--r-- | 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 9d5d0caf..7fdf7675 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 { |