Properly cast array length in print functions. (This used to be commit f321240fa91fa1...
authorJelmer Vernooij <jelmer@samba.org>
Mon, 21 Jul 2008 10:47:08 +0000 (12:47 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 24 Mar 2009 16:44:38 +0000 (17:44 +0100)
(cherry picked from commit 37a29ad53eae02a29fbb0bf14731487328150d23)

Signed-off-by: Michael Adam <obnox@samba.org>
source/pidl/lib/Parse/Pidl/Expr.pm
source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm

index 66c3c488e0c80a3a7681e393ccbb1eca7dd66517..88dd0213b899f5cf7f9706a9e06f23b7d20d49b2 100644 (file)
@@ -1127,7 +1127,7 @@ sub new {
        [#Rule 2
                 'exp', 1,
 sub
-#line 22 "pidl/expr.yp"
+#line 22 "./pidl/expr.yp"
 { "\"$_[1]\"" }
        ],
        [#Rule 3
@@ -1139,199 +1139,199 @@ sub
        [#Rule 5
                 'exp', 2,
 sub
-#line 25 "pidl/expr.yp"
+#line 25 "./pidl/expr.yp"
 { "~$_[2]" }
        ],
        [#Rule 6
                 'exp', 3,
 sub
-#line 26 "pidl/expr.yp"
+#line 26 "./pidl/expr.yp"
 { "$_[1] + $_[3]" }
        ],
        [#Rule 7
                 'exp', 3,
 sub
-#line 27 "pidl/expr.yp"
+#line 27 "./pidl/expr.yp"
 { "$_[1] - $_[3]" }
        ],
        [#Rule 8
                 'exp', 3,
 sub
-#line 28 "pidl/expr.yp"
+#line 28 "./pidl/expr.yp"
 { "$_[1] * $_[3]" }
        ],
        [#Rule 9
                 'exp', 3,
 sub
-#line 29 "pidl/expr.yp"
+#line 29 "./pidl/expr.yp"
 { "$_[1] % $_[3]" }
        ],
        [#Rule 10
                 'exp', 3,
 sub
-#line 30 "pidl/expr.yp"
+#line 30 "./pidl/expr.yp"
 { "$_[1] < $_[3]" }
        ],
        [#Rule 11
                 'exp', 3,
 sub
-#line 31 "pidl/expr.yp"
+#line 31 "./pidl/expr.yp"
 { "$_[1] > $_[3]" }
        ],
        [#Rule 12
                 'exp', 3,
 sub
-#line 32 "pidl/expr.yp"
+#line 32 "./pidl/expr.yp"
 { "$_[1] | $_[3]" }
        ],
        [#Rule 13
                 'exp', 3,
 sub
-#line 33 "pidl/expr.yp"
+#line 33 "./pidl/expr.yp"
 { "$_[1] == $_[3]" }
        ],
        [#Rule 14
                 'exp', 3,
 sub
-#line 34 "pidl/expr.yp"
+#line 34 "./pidl/expr.yp"
 { "$_[1] <= $_[3]" }
        ],
        [#Rule 15
                 'exp', 3,
 sub
-#line 35 "pidl/expr.yp"
+#line 35 "./pidl/expr.yp"
 { "$_[1] => $_[3]" }
        ],
        [#Rule 16
                 'exp', 3,
 sub
-#line 36 "pidl/expr.yp"
+#line 36 "./pidl/expr.yp"
 { "$_[1] << $_[3]" }
        ],
        [#Rule 17
                 'exp', 3,
 sub
-#line 37 "pidl/expr.yp"
+#line 37 "./pidl/expr.yp"
 { "$_[1] >> $_[3]" }
        ],
        [#Rule 18
                 'exp', 3,
 sub
-#line 38 "pidl/expr.yp"
+#line 38 "./pidl/expr.yp"
 { "$_[1] != $_[3]" }
        ],
        [#Rule 19
                 'exp', 3,
 sub
-#line 39 "pidl/expr.yp"
+#line 39 "./pidl/expr.yp"
 { "$_[1] || $_[3]" }
        ],
        [#Rule 20
                 'exp', 3,
 sub
-#line 40 "pidl/expr.yp"
+#line 40 "./pidl/expr.yp"
 { "$_[1] && $_[3]" }
        ],
        [#Rule 21
                 'exp', 3,
 sub
-#line 41 "pidl/expr.yp"
+#line 41 "./pidl/expr.yp"
 { "$_[1] & $_[3]" }
        ],
        [#Rule 22
                 'exp', 5,
 sub
-#line 42 "pidl/expr.yp"
+#line 42 "./pidl/expr.yp"
 { "$_[1]?$_[3]:$_[5]" }
        ],
        [#Rule 23
                 'exp', 2,
 sub
-#line 43 "pidl/expr.yp"
+#line 43 "./pidl/expr.yp"
 { "~$_[1]" }
        ],
        [#Rule 24
                 'exp', 2,
 sub
-#line 44 "pidl/expr.yp"
+#line 44 "./pidl/expr.yp"
 { "not $_[1]" }
        ],
        [#Rule 25
                 'exp', 3,
 sub
-#line 45 "pidl/expr.yp"
+#line 45 "./pidl/expr.yp"
 { "$_[1] / $_[3]" }
        ],
        [#Rule 26
                 'exp', 2,
 sub
-#line 46 "pidl/expr.yp"
+#line 46 "./pidl/expr.yp"
 { "-$_[2]" }
        ],
        [#Rule 27
                 'exp', 2,
 sub
-#line 47 "pidl/expr.yp"
+#line 47 "./pidl/expr.yp"
 { "&$_[2]" }
        ],
        [#Rule 28
                 'exp', 3,
 sub
-#line 48 "pidl/expr.yp"
+#line 48 "./pidl/expr.yp"
 { "$_[1]^$_[3]" }
        ],
        [#Rule 29
                 'exp', 3,
 sub
-#line 49 "pidl/expr.yp"
+#line 49 "./pidl/expr.yp"
 { "($_[2])" }
        ],
        [#Rule 30
                 'possible_pointer', 1,
 sub
-#line 53 "pidl/expr.yp"
+#line 53 "./pidl/expr.yp"
 { $_[0]->_Lookup($_[1]) }
        ],
        [#Rule 31
                 'possible_pointer', 2,
 sub
-#line 54 "pidl/expr.yp"
+#line 54 "./pidl/expr.yp"
 { $_[0]->_Dereference($_[2]); "*$_[2]" }
        ],
        [#Rule 32
                 'var', 1,
 sub
-#line 57 "pidl/expr.yp"
+#line 57 "./pidl/expr.yp"
 { $_[0]->_Use($_[1]) }
        ],
        [#Rule 33
                 'var', 3,
 sub
-#line 58 "pidl/expr.yp"
+#line 58 "./pidl/expr.yp"
 { $_[0]->_Use("$_[1].$_[3]") }
        ],
        [#Rule 34
                 'var', 3,
 sub
-#line 59 "pidl/expr.yp"
+#line 59 "./pidl/expr.yp"
 { "($_[2])" }
        ],
        [#Rule 35
                 'var', 3,
 sub
-#line 60 "pidl/expr.yp"
+#line 60 "./pidl/expr.yp"
 { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
        ],
        [#Rule 36
                 'func', 4,
 sub
-#line 64 "pidl/expr.yp"
+#line 64 "./pidl/expr.yp"
 { "$_[1]($_[3])" }
        ],
        [#Rule 37
                 'opt_args', 0,
 sub
-#line 65 "pidl/expr.yp"
+#line 65 "./pidl/expr.yp"
 { "" }
        ],
        [#Rule 38
@@ -1349,7 +1349,7 @@ sub
        [#Rule 42
                 'args', 3,
 sub
-#line 68 "pidl/expr.yp"
+#line 68 "./pidl/expr.yp"
 { "$_[1], $_[3]" }
        ]
 ],
@@ -1357,7 +1357,7 @@ sub
     bless($self,$class);
 }
 
-#line 71 "pidl/expr.yp"
+#line 71 "./pidl/expr.yp"
 
 
 package Parse::Pidl::Expr;
index a494a114707129537f450e601d81f22f9c273088..50ee26f1c742e13f0e874801d97fad7a1a495749 100644 (file)
@@ -770,7 +770,7 @@ sub ParseElementPrint($$$$)
                        } else {
                                my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}";
 
-                               $self->pidl("ndr->print(ndr, \"\%s: ARRAY(\%d)\", \"$e->{NAME}\", $length);");
+                               $self->pidl("ndr->print(ndr, \"\%s: ARRAY(\%d)\", \"$e->{NAME}\", (int)$length);");
                                $self->pidl("ndr->depth++;");
                                $self->pidl("for ($counter=0;$counter<$length;$counter++) {");
                                $self->indent;