Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Nov 2014 08:15:14 +0000 (UTC)
From:      John Marino <marino@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r372343 - in head/www/mod_remoteip: . files
Message-ID:  <201411090815.sA98FEre027547@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marino
Date: Sun Nov  9 08:15:14 2014
New Revision: 372343
URL: https://svnweb.freebsd.org/changeset/ports/372343
QAT: https://qat.redports.org/buildarchive/r372343/

Log:
  www/mod_remoteip: fix segfault with .httaccess and allow/deny
  
  As described in Apache issue 49838, mod_remoteip may cause segfaults when
  used together with .htaccess files and allow/deny statements
  
  The existing patch was modified to backport fixes from Apache svn r990745
  and r990746.
  
  PR:		193507
  Submitted by:	David Froehlich
  Approved by:	maintainer (Jim Riggs)

Modified:
  head/www/mod_remoteip/Makefile
  head/www/mod_remoteip/files/patch-modules__metadata__mod_remoteip.c

Modified: head/www/mod_remoteip/Makefile
==============================================================================
--- head/www/mod_remoteip/Makefile	Sun Nov  9 07:58:40 2014	(r372342)
+++ head/www/mod_remoteip/Makefile	Sun Nov  9 08:15:14 2014	(r372343)
@@ -3,6 +3,7 @@
 
 PORTNAME=	mod_remoteip
 PORTVERSION=	2.3.5.a
+PORTREVISION=	1
 CATEGORIES=	www
 MASTER_SITES=	${MASTER_SITE_APACHE_HTTPD}
 DISTNAME=	httpd-2.3.5-alpha

Modified: head/www/mod_remoteip/files/patch-modules__metadata__mod_remoteip.c
==============================================================================
--- head/www/mod_remoteip/files/patch-modules__metadata__mod_remoteip.c	Sun Nov  9 07:58:40 2014	(r372342)
+++ head/www/mod_remoteip/files/patch-modules__metadata__mod_remoteip.c	Sun Nov  9 08:15:14 2014	(r372343)
@@ -1,6 +1,6 @@
---- modules/metadata/mod_remoteip.c.orig	2010-05-11 21:33:43.631571954 -0500
-+++ modules/metadata/mod_remoteip.c	2010-05-11 21:34:15.374903181 -0500
-@@ -127,7 +127,7 @@
+--- modules/metadata/mod_remoteip.c.orig	2009-05-05 18:52:59 UTC
++++ modules/metadata/mod_remoteip.c
+@@ -127,7 +127,7 @@ static int looks_like_ip(const char *ips
      return (*ipstr == '\0');
  }
  
@@ -9,7 +9,7 @@
                                 const char *arg)
  {
      remoteip_config_t *config = ap_get_module_config(cmd->server->module_config,
-@@ -142,7 +142,7 @@
+@@ -142,7 +142,7 @@ static const char *proxies_set(cmd_parms
      if (!config->proxymatch_ip)
          config->proxymatch_ip = apr_array_make(cmd->pool, 1, sizeof(*match));
      match = (remoteip_proxymatch_t *) apr_array_push(config->proxymatch_ip);
@@ -18,7 +18,7 @@
  
      if (looks_like_ip(ip)) {
          /* Note s may be null, that's fine (explicit host) */
-@@ -168,7 +168,7 @@
+@@ -168,7 +168,7 @@ static const char *proxies_set(cmd_parms
                  break;
              match = (remoteip_proxymatch_t *) 
                      apr_array_push(config->proxymatch_ip);
@@ -27,7 +27,7 @@
          }
      }
  
-@@ -182,7 +182,7 @@
+@@ -182,7 +182,7 @@ static const char *proxies_set(cmd_parms
      return NULL;
  }
  
@@ -36,7 +36,7 @@
                                    const char *filename)
  {
      char lbuf[MAX_STRING_LEN];
-@@ -205,7 +205,7 @@
+@@ -205,7 +205,7 @@ static const char *proxylist_read(cmd_pa
          while (*(arg = ap_getword_conf(cmd->temp_pool, &args)) != '\0') {
              if (*arg == '#' || *arg == '\0')
                  break;
@@ -45,3 +45,30 @@
              if (errmsg) {
                  errmsg = apr_psprintf(cmd->pool, "%s at line %d of %s", 
                                        errmsg, cfp->line_number, filename);
+@@ -260,7 +260,7 @@ static int remoteip_modify_connection(re
+     remote = apr_pstrdup(r->pool, remote);
+ 
+ #ifdef REMOTEIP_OPTIMIZED
+-    memcpy(&temp_sa, c->remote_addr, sizeof(temp_sa));
++    memcpy(temp_sa, c->remote_addr, sizeof(*temp_sa));
+     temp_sa->pool = r->pool;
+ #else
+     temp_sa = c->remote_addr;
+@@ -310,7 +310,7 @@ static int remoteip_modify_connection(re
+ #ifdef REMOTEIP_OPTIMIZED
+         /* Decode remote_addr - sucks; apr_sockaddr_vars_set isn't 'public' */
+         if (inet_pton(AF_INET, parse_remote, 
+-                      &temp_sa_buff->sa.sin.sin_addr) > 0) {
++                      &temp_sa->sa.sin.sin_addr) > 0) {
+             apr_sockaddr_vars_set(temp_sa, APR_INET, temp_sa.port);
+         }
+ #if APR_HAVE_IPV6
+@@ -409,7 +409,7 @@ static int remoteip_modify_connection(re
+      */
+     c->remote_ip = apr_pstrdup(c->pool, c->remote_ip);
+     conn->proxied_ip = c->remote_ip;
+-    memcpy(&conn->proxied_addr, &temp_sa, sizeof(temp_sa));
++    memcpy(&conn->proxied_addr, temp_sa, sizeof(*temp_sa));
+     conn->proxied_addr.pool = c->pool;
+     c->remote_addr = &conn->proxied_addr;
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411090815.sA98FEre027547>