diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2011-04-08 07:28:10 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2011-04-08 07:28:10 +0000 |
commit | 1ff319c3866bb3b32ae2a81b135dfabf3a246fba (patch) | |
tree | 3ac36d7357ae46791da7ec83cd9f5fb6a3043729 /www/tinyproxy | |
parent | 73b51dcb51fd2863b837c90ada3d36c54612187a (diff) | |
download | ports-1ff319c3866bb3b32ae2a81b135dfabf3a246fba.tar.gz ports-1ff319c3866bb3b32ae2a81b135dfabf3a246fba.zip |
Notes
Diffstat (limited to 'www/tinyproxy')
-rw-r--r-- | www/tinyproxy/Makefile | 2 | ||||
-rw-r--r-- | www/tinyproxy/files/patch-src__acl.c | 55 |
2 files changed, 56 insertions, 1 deletions
diff --git a/www/tinyproxy/Makefile b/www/tinyproxy/Makefile index 30171b4fc50e..8e07a6fd49b1 100644 --- a/www/tinyproxy/Makefile +++ b/www/tinyproxy/Makefile @@ -7,7 +7,7 @@ PORTNAME= tinyproxy PORTVERSION= 1.8.2 -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= www MASTER_SITES= https://banu.com/pub/tinyproxy/1.8/ diff --git a/www/tinyproxy/files/patch-src__acl.c b/www/tinyproxy/files/patch-src__acl.c new file mode 100644 index 000000000000..02ea0f3c21bb --- /dev/null +++ b/www/tinyproxy/files/patch-src__acl.c @@ -0,0 +1,55 @@ +--- src/acl.c.orig ++++ src/acl.c +@@ -66,8 +66,8 @@ struct acl_s { + * + */ + static int +-fill_netmask_array (char *bitmask_string, unsigned char array[], +- size_t len) ++fill_netmask_array (char *bitmask_string, int v6, ++ unsigned char array[], size_t len) + { + unsigned int i; + unsigned long int mask; +@@ -81,7 +81,14 @@ fill_netmask_array (char *bitmask_string, unsigned char array[], + || (errno != 0 && mask == 0) || (endptr == bitmask_string)) + return -1; + +- /* valid range for a bit mask */ ++ if (v6 == 0) { ++ /* The mask comparison is done as an IPv6 address, so ++ * convert to a longer mask in the case of IPv4 ++ * addresses. */ ++ mask += 12 * 8; ++ } ++ ++ /* check valid range for a bit mask */ + if (mask > (8 * len)) + return -1; + +@@ -163,6 +170,9 @@ insert_acl (char *location, acl_access_t access_type, vector_t *access_list) + */ + p = strchr (location, '/'); + if (p != NULL) { ++ char dst[sizeof(struct in6_addr)]; ++ int v6; ++ + /* + * We have a slash, so it's intended to be an + * IP address with mask +@@ -173,8 +183,15 @@ insert_acl (char *location, acl_access_t access_type, vector_t *access_list) + + acl.type = ACL_NUMERIC; + ++ /* Check if the IP address before the netmask is ++ * an IPv6 address */ ++ if (inet_pton(AF_INET6, location, dst) > 0) ++ v6 = 1; ++ else ++ v6 = 0; ++ + if (fill_netmask_array +- (p + 1, &(acl.address.ip.mask[0]), IPV6_LEN) ++ (p + 1, v6, &(acl.address.ip.mask[0]), IPV6_LEN) + < 0) + return -1; |