s3-passdb: Fix string duplication to pointers.
authorAndreas Schneider <asn@samba.org>
Thu, 9 Jan 2014 14:20:21 +0000 (15:20 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 13 Jan 2014 11:09:25 +0000 (12:09 +0100)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Thu Jan  9 22:35:25 CET 2014 on sn-devel-104

(cherry picked from commit bff3ac250e9d4e7d91820eb53c28257aa38fff88)

The last 4 patches address bug #10367 - Fix several memory leaks.

Autobuild-User(v4-1-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-1-test): Mon Jan 13 12:09:26 CET 2014 on sn-devel-104

source3/passdb/py_passdb.c

index 3fd14cdc41181a6eebf2dbfbf2e734938a59e38f..e1df75be45b51b63acc5ab4fa2d4a89166fb66ab 100644 (file)
@@ -2269,8 +2269,18 @@ static PyObject *py_pdb_set_aliasinfo(pytalloc_Object *self, PyObject *args)
 
        alias_sid = pytalloc_get_ptr(py_alias_sid);
 
-       fstrcpy(alias_info.acct_name, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_name")));
-       fstrcpy(alias_info.acct_desc, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_desc")));
+       alias_info.acct_name = talloc_strdup(frame, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_name")));
+       if (alias_info.acct_name == NULL) {
+               PyErr_Format(py_pdb_error, "Unable to allocate memory");
+               talloc_free(frame);
+               return NULL;
+       }
+       alias_info.acct_desc = talloc_strdup(frame, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_desc")));
+       if (alias_info.acct_desc == NULL) {
+               PyErr_Format(py_pdb_error, "Unable to allocate memory");
+               talloc_free(frame);
+               return NULL;
+       }
 
        status = methods->set_aliasinfo(methods, alias_sid, &alias_info);
        if (!NT_STATUS_IS_OK(status)) {