python plugin: Don't create empty meta_data_t objects.
authorFlorian Forster <octo@collectd.org>
Tue, 2 Sep 2014 17:48:10 +0000 (19:48 +0200)
committerFlorian Forster <octo@collectd.org>
Tue, 2 Sep 2014 17:48:10 +0000 (19:48 +0200)
Fixes: #716

src/pyvalues.c

index 4a658d0..4f5c4ce 100644 (file)
@@ -419,7 +419,7 @@ static meta_data_t *cpy_build_meta(PyObject *meta) {
        meta_data_t *m = NULL;
        PyObject *l;
        
-       if (!meta)
+       if ((meta == NULL) || (meta == Py_None))
                return NULL;
 
        l = PyDict_Items(meta); /* New reference. */
@@ -427,8 +427,12 @@ static meta_data_t *cpy_build_meta(PyObject *meta) {
                cpy_log_exception("building meta data");
                return NULL;
        }
-       m = meta_data_create();
+
        s = PyList_Size(l);
+       if (s < 0)
+               return NULL;
+
+       m = meta_data_create();
        for (i = 0; i < s; ++i) {
                const char *string, *keystring;
                PyObject *key, *value, *item, *tmp;