mirror of
https://github.com/openwrt/packages.git
synced 2026-01-09 19:31:21 +00:00
domoticz: update to 2020.2
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
46
utils/domoticz/patches/012-minizip-overflow.patch
Normal file
46
utils/domoticz/patches/012-minizip-overflow.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
From 3c23a7863c0b01273d4c36423769443ea7e4a7bb Mon Sep 17 00:00:00 2001
|
||||
From: David Woodhouse <dwmw2@infradead.org>
|
||||
Date: Fri, 5 Jun 2020 15:02:41 +0100
|
||||
Subject: [PATCH 1/2] unzip: reduce file name size to 65535 to work with
|
||||
external minizip
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The external minizip project has changed the unzGetCurrentFileInfo()
|
||||
function to take a uint16_t as the filename size, instead of a uLong
|
||||
as in the original version in zlib.
|
||||
|
||||
(Reported as https://github.com/nmoinvaz/minizip/issues/490 but it
|
||||
was 3½ years ago and might be too late to fix it now, although changing
|
||||
it back to a *larger* type is a lot safer than reducing the size, and
|
||||
perhaps they should.)
|
||||
|
||||
This means that our 65536-byte buffer gets truncated to zero, as the
|
||||
compiler tells us when we build agaisnt the external minizip:
|
||||
|
||||
domoticz/main/unzip_stream.h:140:50: warning: conversion from ‘long unsigned int’ to ‘uint16_t’ {aka ‘short unsigned int’} changes value from ‘65536’ to ‘0’ [-Woverflow]
|
||||
140 | unzGetCurrentFileInfo(handler_, &info, path, sizeof(path), NULL, 0, NULL, 0);
|
||||
| ^~~~~~~~~~~~
|
||||
|
||||
Reduce the buffer size to 65535 bytes instead.
|
||||
---
|
||||
main/unzip_stream.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/main/unzip_stream.h b/main/unzip_stream.h
|
||||
index 136fcefd9..813f2489a 100644
|
||||
--- a/main/unzip_stream.h
|
||||
+++ b/main/unzip_stream.h
|
||||
@@ -135,7 +135,7 @@ namespace clx {
|
||||
basic_unzip_stream& open(handler_type h) {
|
||||
handler_ = h;
|
||||
if (handler_) {
|
||||
- char path[65536];
|
||||
+ char path[65535];
|
||||
unz_file_info info;
|
||||
unzGetCurrentFileInfo(handler_, &info, path, sizeof(path), NULL, 0, NULL, 0);
|
||||
path_ = path;
|
||||
--
|
||||
2.26.2
|
||||
|
||||
Reference in New Issue
Block a user