diff options
author | Stefan Metzmacher <metze@samba.org> | 2016-09-13 05:51:42 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2016-10-26 11:20:19 +0200 |
commit | 9b842badcb0fcc4b8d95473c206c68a56211435e (patch) | |
tree | c9c3aedab6325c0454028ce55f57eaa1e788b5fd /python/samba | |
parent | 40175613519e7405a16e8f896dfdc2949430bc4b (diff) | |
download | samba-9b842badcb0fcc4b8d95473c206c68a56211435e.tar.gz |
python:ndr: verify the object type ndr_print() and ndr_unpack()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'python/samba')
-rw-r--r-- | python/samba/ndr.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/python/samba/ndr.py b/python/samba/ndr.py index 39e4a482efb..7a8f54af192 100644 --- a/python/samba/ndr.py +++ b/python/samba/ndr.py @@ -42,9 +42,15 @@ def ndr_unpack(cls, data, allow_remaining=False): :return: Unpacked object """ object = cls() - object.__ndr_unpack__(data, allow_remaining=allow_remaining) + ndr_unpack = getattr(object, "__ndr_unpack__", None) + if ndr_unpack is None: + raise TypeError("%r is not a NDR object" % object) + ndr_unpack(data, allow_remaining=allow_remaining) return object def ndr_print(object): - return object.__ndr_print__() + ndr_print = getattr(object, "__ndr_print__", None) + if ndr_print is None: + raise TypeError("%r is not a NDR object" % object) + return ndr_print() |