aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch')
-rw-r--r--package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch b/package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch
new file mode 100644
index 0000000..0dd7720
--- /dev/null
+++ b/package/network/services/igmpproxy/patches/200-allow_wildcard_addr.patch
@@ -0,0 +1,24 @@
+--- a/src/config.c
++++ b/src/config.c
+@@ -357,15 +357,18 @@ struct SubnetList *parseSubnetAddress(ch
+ tmpStr = strtok(NULL, "/");
+ if(tmpStr != NULL) {
+ int bitcnt = atoi(tmpStr);
+- if(bitcnt <= 0 || bitcnt > 32) {
++ if(bitcnt < 0 || bitcnt > 32) {
+ my_log(LOG_WARNING, 0, "The bits part of the address is invalid : %d.",tmpStr);
+ return NULL;
+ }
+
+- mask <<= (32 - bitcnt);
++ if (bitcnt == 0)
++ mask = 0;
++ else
++ mask <<= (32 - bitcnt);
+ }
+
+- if(addr == -1 || addr == 0) {
++ if(addr == -1) {
+ my_log(LOG_WARNING, 0, "Unable to parse address token '%s'.", addrstr);
+ return NULL;
+ }