]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ndr_string: Add overflow check in ndr_pull_charset_to_null()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Mon, 10 Jul 2023 02:42:23 +0000 (14:42 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 8 Aug 2023 04:39:36 +0000 (04:39 +0000)
This matches ndr_pull_charset().

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
librpc/ndr/ndr_string.c

index b2f965c9d43ca82c15b1d22c8826b59bb052a991..783e11be3343457070f8ce54c39570542fc5478b 100644 (file)
@@ -722,6 +722,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_charset_to_null(struct ndr_pull *ndr, int nd
                chset = CH_UTF16BE;
        }
 
+       if ((byte_mul != 0) && (length > UINT32_MAX/byte_mul)) {
+               return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, "length overflow");
+       }
        NDR_PULL_NEED_BYTES(ndr, length*byte_mul);
 
        str_len = ndr_string_n_length(ndr->data+ndr->offset, length, byte_mul);