summaryrefslogtreecommitdiff
path: root/source3/python/py_spoolss_forms_conv.c
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2002-10-21 04:21:05 +0000
committerTim Potter <tpot@samba.org>2002-10-21 04:21:05 +0000
commitd4410a57583d1ee4559dc72e0845f9631e5c3f9b (patch)
tree81ba9381490a2e53f3e32426de0d83b6f7a1621d /source3/python/py_spoolss_forms_conv.c
parent346c9845a8892c336ae39e5efe7a8ef7e2a2afd1 (diff)
downloadsamba-d4410a57583d1ee4559dc72e0845f9631e5c3f9b.tar.gz
samba-d4410a57583d1ee4559dc72e0845f9631e5c3f9b.tar.bz2
samba-d4410a57583d1ee4559dc72e0845f9631e5c3f9b.zip
Merge of validiation cleanups from head.
(This used to be commit 174c8ca814cbb63425207d51f21cf5f80932f743)
Diffstat (limited to 'source3/python/py_spoolss_forms_conv.c')
-rw-r--r--source3/python/py_spoolss_forms_conv.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/source3/python/py_spoolss_forms_conv.c b/source3/python/py_spoolss_forms_conv.c
index 6ef953cbc9..cfeb475b1e 100644
--- a/source3/python/py_spoolss_forms_conv.c
+++ b/source3/python/py_spoolss_forms_conv.c
@@ -57,23 +57,30 @@ BOOL py_to_FORM(FORM *form, PyObject *dict)
{
PyObject *obj, *dict_copy = PyDict_Copy(dict);
char *name;
+ BOOL result = False;
- obj = PyDict_GetItemString(dict, "name");
+ if (!(obj = PyDict_GetItemString(dict_copy, "name")) ||
+ !PyString_Check(obj))
+ goto done;
- if (!obj || !PyString_Check(obj))
- return False;
+ PyDict_DelItemString(dict_copy, "name");
+
+ if (!(obj = PyDict_GetItemString(dict_copy, "level")) ||
+ !PyInt_Check(obj))
+ goto done;
PyDict_DelItemString(dict_copy, "level");
- PyDict_DelItemString(dict_copy, "name");
- if (!to_struct(form, dict_copy, py_FORM)) {
- Py_DECREF(dict_copy);
- return False;
- }
+ if (!to_struct(form, dict_copy, py_FORM))
+ goto done;
name = PyString_AsString(obj);
init_unistr2(&form->name, name, strlen(name) + 1);
- return True;
+ result = True;
+
+done:
+ Py_DECREF(dict_copy);
+ return result;
}