summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/analysis/db/items/bookmark.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/pychrysalide/analysis/db/items/bookmark.c')
-rw-r--r--plugins/pychrysalide/analysis/db/items/bookmark.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/plugins/pychrysalide/analysis/db/items/bookmark.c b/plugins/pychrysalide/analysis/db/items/bookmark.c
index 468f38c..547d8f1 100644
--- a/plugins/pychrysalide/analysis/db/items/bookmark.c
+++ b/plugins/pychrysalide/analysis/db/items/bookmark.c
@@ -148,7 +148,7 @@ static PyObject *py_db_bookmark_new(PyTypeObject *type, PyObject *args, PyObject
static int py_db_bookmark_init(PyObject *self, PyObject *args, PyObject *kwds)
{
int result; /* Bilan à renvoyer */
- vmpa2t addr; /* Emplacement ciblé */
+ vmpa2t *addr; /* Emplacement ciblé */
const char *comment; /* Commentaire éventuel associé*/
int ret; /* Bilan de lecture des args. */
PyObject *new_args; /* Nouveaux arguments épurés */
@@ -190,14 +190,24 @@ static int py_db_bookmark_init(PyObject *self, PyObject *args, PyObject *kwds)
Py_DECREF(new_kwds);
Py_DECREF(new_args);
- if (ret == -1) goto exit;
+ if (ret == -1)
+ {
+ clean_vmpa_arg(addr);
+ goto exit;
+ }
/* Eléments de base */
bookmark = G_DB_BOOKMARK(pygobject_get(self));
- status = g_db_bookmark_fill(bookmark, &addr, comment);
- if (!status) goto exit;
+ status = g_db_bookmark_fill(bookmark, addr, comment);
+ if (!status)
+ {
+ clean_vmpa_arg(addr);
+ goto exit;
+ }
+
+ clean_vmpa_arg(addr);
result = 0;