From: Jennifer Sutton Date: Tue, 17 Jun 2025 04:36:16 +0000 (+1200) Subject: pidl: Validate Python bytes objects X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c88164ee6887d21ddf5d1a272d31c1178e8cc23b;p=thirdparty%2Fsamba.git pidl: Validate Python bytes objects Signed-off-by: Jennifer Sutton Reviewed-by: Douglas Bagnall --- diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index e6a5ac8bb17..b342704af4d 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -2039,6 +2039,12 @@ sub ConvertObjectFromPythonData($$$$$$;$$) } if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "DATA_BLOB") { + $self->pidl("if (!PyBytes_Check($cvar)) {"); + $self->indent; + $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected bytes object, got %s\", Py_TYPE($cvar)->tp_name);"); + $self->pidl("$fail"); + $self->deindent; + $self->pidl("}"); $self->pidl("$target = data_blob_talloc($mem_ctx, PyBytes_AS_STRING($cvar), PyBytes_GET_SIZE($cvar));"); return; }