]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pidl: Make sure to cast whole expressions
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Sun, 26 Nov 2023 23:58:05 +0000 (12:58 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 30 Nov 2023 00:02:33 +0000 (00:02 +0000)
$cvar could be an expression such as ‘1 << 10’. In such cases this cast
presumably was intended to apply to the entire expression, not just to
the ‘1’.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
pidl/lib/Parse/Pidl/Samba4/Python.pm

index 0472f3b01c8ecfa6b7c3cf86eb2b7bdef894fc2f..57f8e8b5638f685423ae746fd8ac89611aa40926 100644 (file)
@@ -2082,11 +2082,11 @@ sub ConvertScalarToPython($$$$)
        # possibly 64 bit unsigned long.  (enums are signed in C,
        # unsigned in NDR)
        if ($ctypename =~ /^(uint32|uint3264)$/) {
-               return "PyLong_FromUnsignedLongLong((uint32_t)$cvar)";
+               return "PyLong_FromUnsignedLongLong((uint32_t)($cvar))";
        }
 
        if ($ctypename =~ /^(uint|uint8|uint16|uint1632)$/) {
-               return "PyLong_FromLong((uint16_t)$cvar)";
+               return "PyLong_FromLong((uint16_t)($cvar))";
        }
 
        if ($ctypename eq "DATA_BLOB") {