]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pidl: Validate Python bytes objects
authorJennifer Sutton <jennifersutton@catalyst.net.nz>
Tue, 17 Jun 2025 04:36:16 +0000 (16:36 +1200)
committerDouglas Bagnall <dbagnall@samba.org>
Wed, 27 Aug 2025 03:41:36 +0000 (03:41 +0000)
Signed-off-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
pidl/lib/Parse/Pidl/Samba4/Python.pm

index e6a5ac8bb172a8b13525e4624eddc608211504d9..b342704af4d7bfa1d667275e6ed502f816454866 100644 (file)
@@ -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;
        }