diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-06-11 08:54:11 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2015-06-12 17:08:19 +0200 |
commit | 781cc3d50f18e69bad5faf67ee46f7b1fd28cf2a (patch) | |
tree | 2279c3df32a19ee360b8f83b3b5c3b580d115ca5 | |
parent | ad7148fec650c10fa77daf73ece57a8dfa37eb63 (diff) | |
download | samba-781cc3d50f18e69bad5faf67ee46f7b1fd28cf2a.tar.gz |
pidl:Python: protect for loops against $length being an expression instead of a scalar variable
This changes
for (value_cntr_1 = 0; value_cntr_1 < r->out.length?*r->out.length:0; value_cntr_1++) {
into:
for (value_cntr_1 = 0; value_cntr_1 < (r->out.length?*r->out.length:0); value_cntr_1++) {
it fixes a possible endless loop resulting in a crash.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba4/Python.pm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 1d271bfa525..b0a7099f1cf 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -1349,7 +1349,7 @@ sub ConvertObjectToPythonLevel($$$$$$) $self->indent; my $counter = "$e->{NAME}_cntr_$l->{LEVEL_INDEX}"; $self->pidl("int $counter;"); - $self->pidl("for ($counter = 0; $counter < $length; $counter++) {"); + $self->pidl("for ($counter = 0; $counter < ($length); $counter++) {"); $self->indent; my $member_var = "py_$e->{NAME}_$l->{LEVEL_INDEX}"; $self->pidl("PyObject *$member_var;"); |