From: Volker Lendecke Date: Thu, 20 Oct 2022 14:46:18 +0000 (+0200) Subject: pylibsmb: Simplify py_cli_create_contexts() X-Git-Tag: talloc-2.4.0~622 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d552b1e3e00e5aee0a006df439668175a694ffc;p=thirdparty%2Fsamba.git pylibsmb: Simplify py_cli_create_contexts() Py_BuildValue() can create tuples. Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/libsmb/pylibsmb.c b/source3/libsmb/pylibsmb.c index 9495d9eed54..a6c67fe908d 100644 --- a/source3/libsmb/pylibsmb.c +++ b/source3/libsmb/pylibsmb.c @@ -923,8 +923,6 @@ fail: static PyObject *py_cli_create_contexts(const struct smb2_create_blobs *blobs) { PyObject *py_blobs = NULL; - PyObject *py_blob = NULL; - PyObject *tmp = NULL; uint32_t i; if (blobs == NULL) { @@ -933,49 +931,32 @@ static PyObject *py_cli_create_contexts(const struct smb2_create_blobs *blobs) py_blobs = PyList_New(blobs->num_blobs); if (py_blobs == NULL) { - goto fail; + return NULL; } for (i=0; inum_blobs; i++) { struct smb2_create_blob *blob = &blobs->blobs[i]; + PyObject *py_blob = NULL; int ret; - py_blob = PyTuple_New(2); + py_blob = Py_BuildValue( + "(yy#)", + blob->tag, + blob->data.data, + (int)blob->data.length); if (py_blob == NULL) { - goto nomem; - } - - tmp = PyBytes_FromString(blob->tag); - if (tmp == NULL) { - goto nomem; - } - ret = PyTuple_SetItem(py_blob, 0, tmp); - if (ret == -1) { - goto fail; - } - - tmp = PyBytes_FromStringAndSize( - (char *)blob->data.data, blob->data.length); - if (tmp == NULL) { - goto nomem; - } - ret = PyTuple_SetItem(py_blob, 1, tmp); - if (ret == -1) { goto fail; } ret = PyList_SetItem(py_blobs, i, py_blob); if (ret == -1) { + Py_XDECREF(py_blob); goto fail; } } return py_blobs; -nomem: - PyErr_NoMemory(); fail: - Py_XDECREF(tmp); - Py_XDECREF(py_blob); Py_XDECREF(py_blobs); return NULL; }