diff options
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/ndr/ndr_cab.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/librpc/ndr/ndr_cab.c b/librpc/ndr/ndr_cab.c index 0d2b36b3249..d5ab87fb0af 100644 --- a/librpc/ndr/ndr_cab.c +++ b/librpc/ndr/ndr_cab.c @@ -57,6 +57,10 @@ uint32_t ndr_count_cfdata(const struct cab_file *r) uint32_t count = 0, i; for (i = 0; i < r->cfheader.cFolders; i++) { + if (count + r->cffolders[i].cCFData < count) { + /* Integer wrap. */ + return 0; + } count += r->cffolders[i].cCFData; } |