htpasswd/htdbm: fix hash generation bug (#956344)
- do not dump vhosts twice in httpd -S output (#928761) - mod_cache: fix potential crash caused by uninitialized variable (#954109)
This commit is contained in:
parent
e3774a7565
commit
46396bf734
45
httpd-2.4.4-dump-vhost-twice.patch
Normal file
45
httpd-2.4.4-dump-vhost-twice.patch
Normal file
@ -0,0 +1,45 @@
|
||||
--- trunk/server/vhost.c 2013/05/11 11:51:28 1481305
|
||||
+++ trunk/server/vhost.c 2013/05/11 12:05:24 1481306
|
||||
@@ -577,14 +577,21 @@
|
||||
*/
|
||||
|
||||
for (s = main_s->next; s; s = s->next) {
|
||||
+ server_addr_rec *sar_prev = NULL;
|
||||
has_default_vhost_addr = 0;
|
||||
for (sar = s->addrs; sar; sar = sar->next) {
|
||||
ipaddr_chain *ic;
|
||||
char inaddr_any[16] = {0}; /* big enough to handle IPv4 or IPv6 */
|
||||
-
|
||||
+ /* XXX: this treats 0.0.0.0 as a "default" server which matches no-exact-match for IPv6 */
|
||||
if (!memcmp(sar->host_addr->ipaddr_ptr, inaddr_any, sar->host_addr->ipaddr_len)) {
|
||||
ic = find_default_server(sar->host_port);
|
||||
- if (!ic || sar->host_port != ic->sar->host_port) {
|
||||
+
|
||||
+ if (ic && sar->host_port == ic->sar->host_port) { /* we're a match for an existing "default server" */
|
||||
+ if (!sar_prev || memcmp(sar_prev->host_addr->ipaddr_ptr, inaddr_any, sar_prev->host_addr->ipaddr_len)) {
|
||||
+ add_name_vhost_config(p, main_s, s, sar, ic);
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
/* No default server, or we found a default server but
|
||||
** exactly one of us is a wildcard port, which means we want
|
||||
** two ip-based vhosts not an NVH with two names
|
||||
@@ -592,6 +599,7 @@
|
||||
ic = new_ipaddr_chain(p, s, sar);
|
||||
ic->next = default_list;
|
||||
default_list = ic;
|
||||
+ add_name_vhost_config(p, main_s, s, sar, ic);
|
||||
}
|
||||
has_default_vhost_addr = 1;
|
||||
}
|
||||
@@ -609,8 +617,9 @@
|
||||
ic->next = *iphash_table_tail[bucket];
|
||||
*iphash_table_tail[bucket] = ic;
|
||||
}
|
||||
+ add_name_vhost_config(p, main_s, s, sar, ic);
|
||||
}
|
||||
- add_name_vhost_config(p, main_s, s, sar, ic);
|
||||
+ sar_prev = sar;
|
||||
}
|
||||
|
||||
/* Ok now we want to set up a server_hostname if the user was
|
11
httpd-2.4.4-mod_cache-tmppath.patch
Normal file
11
httpd-2.4.4-mod_cache-tmppath.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/modules/cache/mod_cache.c
|
||||
+++ a/modules/cache/mod_cache.c
|
||||
@@ -1773,7 +1773,7 @@ static void *merge_dir_config(apr_pool_t *p, void *basev, void *addv) {
|
||||
|
||||
static void * create_cache_config(apr_pool_t *p, server_rec *s)
|
||||
{
|
||||
- const char *tmppath;
|
||||
+ const char *tmppath = NULL;
|
||||
cache_server_conf *ps = apr_pcalloc(p, sizeof(cache_server_conf));
|
||||
|
||||
/* array of URL prefixes for which caching is enabled */
|
110
httpd-2.4.4-r1476674.patch
Normal file
110
httpd-2.4.4-r1476674.patch
Normal file
@ -0,0 +1,110 @@
|
||||
Index: support/passwd_common.c
|
||||
===================================================================
|
||||
--- a/support/passwd_common.c (revision 1476673)
|
||||
+++ b/support/passwd_common.c (working copy)
|
||||
@@ -113,17 +113,17 @@
|
||||
|
||||
int get_password(struct passwd_ctx *ctx)
|
||||
{
|
||||
+ char buf[MAX_STRING_LEN + 1];
|
||||
if (ctx->passwd_src == PW_STDIN) {
|
||||
- char *buf = ctx->out;
|
||||
apr_file_t *file_stdin;
|
||||
apr_size_t nread;
|
||||
if (apr_file_open_stdin(&file_stdin, ctx->pool) != APR_SUCCESS) {
|
||||
ctx->errstr = "Unable to read from stdin.";
|
||||
return ERR_GENERAL;
|
||||
}
|
||||
- if (apr_file_read_full(file_stdin, buf, ctx->out_len - 1,
|
||||
+ if (apr_file_read_full(file_stdin, buf, sizeof(buf) - 1,
|
||||
&nread) != APR_EOF
|
||||
- || nread == ctx->out_len - 1) {
|
||||
+ || nread == sizeof(buf) - 1) {
|
||||
goto err_too_long;
|
||||
}
|
||||
buf[nread] = '\0';
|
||||
@@ -133,21 +133,24 @@
|
||||
buf[nread-2] = '\0';
|
||||
}
|
||||
apr_file_close(file_stdin);
|
||||
+ ctx->passwd = apr_pstrdup(ctx->pool, buf);
|
||||
}
|
||||
else {
|
||||
- char buf[MAX_STRING_LEN + 1];
|
||||
apr_size_t bufsize = sizeof(buf);
|
||||
- if (apr_password_get("New password: ", ctx->out, &ctx->out_len) != 0)
|
||||
+ if (apr_password_get("New password: ", buf, &bufsize) != 0)
|
||||
goto err_too_long;
|
||||
+ ctx->passwd = apr_pstrdup(ctx->pool, buf);
|
||||
+ bufsize = sizeof(buf);
|
||||
+ buf[0] = '\0';
|
||||
apr_password_get("Re-type new password: ", buf, &bufsize);
|
||||
- if (strcmp(ctx->out, buf) != 0) {
|
||||
+ if (strcmp(ctx->passwd, buf) != 0) {
|
||||
ctx->errstr = "password verification error";
|
||||
- memset(ctx->out, '\0', ctx->out_len);
|
||||
+ memset(ctx->passwd, '\0', strlen(ctx->passwd));
|
||||
memset(buf, '\0', sizeof(buf));
|
||||
return ERR_PWMISMATCH;
|
||||
}
|
||||
- memset(buf, '\0', sizeof(buf));
|
||||
}
|
||||
+ memset(buf, '\0', sizeof(buf));
|
||||
return 0;
|
||||
|
||||
err_too_long:
|
||||
@@ -164,7 +167,6 @@
|
||||
int mkhash(struct passwd_ctx *ctx)
|
||||
{
|
||||
char *pw;
|
||||
- char pwin[MAX_STRING_LEN];
|
||||
char salt[16];
|
||||
apr_status_t rv;
|
||||
int ret = 0;
|
||||
@@ -177,14 +179,11 @@
|
||||
"Warning: Ignoring -C argument for this algorithm." NL);
|
||||
}
|
||||
|
||||
- if (ctx->passwd != NULL) {
|
||||
- pw = ctx->passwd;
|
||||
- }
|
||||
- else {
|
||||
+ if (ctx->passwd == NULL) {
|
||||
if ((ret = get_password(ctx)) != 0)
|
||||
return ret;
|
||||
- pw = pwin;
|
||||
}
|
||||
+ pw = ctx->passwd;
|
||||
|
||||
switch (ctx->alg) {
|
||||
case ALG_APSHA:
|
||||
@@ -224,7 +223,7 @@
|
||||
|
||||
apr_cpystrn(ctx->out, cbuf, ctx->out_len - 1);
|
||||
if (strlen(pw) > 8) {
|
||||
- char *truncpw = strdup(pw);
|
||||
+ char *truncpw = apr_pstrdup(ctx->pool, pw);
|
||||
truncpw[8] = '\0';
|
||||
if (!strcmp(ctx->out, crypt(truncpw, salt))) {
|
||||
apr_file_printf(errfile, "Warning: Password truncated to 8 "
|
||||
Index: support/htpasswd.c
|
||||
===================================================================
|
||||
--- a/support/htpasswd.c (revision 1476673)
|
||||
+++ b/support/htpasswd.c (working copy)
|
||||
@@ -253,7 +253,6 @@
|
||||
int main(int argc, const char * const argv[])
|
||||
{
|
||||
apr_file_t *fpw = NULL;
|
||||
- const char *errstr = NULL;
|
||||
char line[MAX_STRING_LEN];
|
||||
char *pwfilename = NULL;
|
||||
char *user = NULL;
|
||||
@@ -345,7 +344,7 @@
|
||||
if (!(mask & APHTP_DELUSER)) {
|
||||
i = mkrecord(&ctx, user);
|
||||
if (i != 0) {
|
||||
- apr_file_printf(errfile, "%s: %s" NL, argv[0], errstr);
|
||||
+ apr_file_printf(errfile, "%s: %s" NL, argv[0], ctx.errstr);
|
||||
exit(i);
|
||||
}
|
||||
if (mask & APHTP_NOFILE) {
|
13
httpd.spec
13
httpd.spec
@ -14,7 +14,7 @@
|
||||
Summary: Apache HTTP Server
|
||||
Name: httpd
|
||||
Version: 2.4.4
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
URL: http://httpd.apache.org/
|
||||
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
|
||||
Source1: index.html
|
||||
@ -64,6 +64,9 @@ Patch31: httpd-2.4.4-sslmultiproxy.patch
|
||||
# Bug fixes
|
||||
Patch50: httpd-2.4.2-r1374214+.patch
|
||||
Patch51: httpd-2.4.3-sslsninotreq.patch
|
||||
Patch52: httpd-2.4.4-r1476674.patch
|
||||
Patch53: httpd-2.4.4-mod_cache-tmppath.patch
|
||||
Patch54: httpd-2.4.4-dump-vhost-twice.patch
|
||||
License: ASL 2.0
|
||||
Group: System Environment/Daemons
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
@ -188,6 +191,9 @@ interface for storing and accessing per-user session data.
|
||||
|
||||
%patch50 -p1 -b .r1374214+
|
||||
%patch51 -p1 -b .sninotreq
|
||||
%patch52 -p1 -b .r1476674
|
||||
%patch53 -p1 -b .tmppath
|
||||
%patch54 -p1 -b .vhosttwice
|
||||
|
||||
# Patch in the vendor string
|
||||
sed -i '/^#define PLATFORM/s/Unix/%{vstring}/' os/unix/os.h
|
||||
@ -610,6 +616,11 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_sysconfdir}/rpm/macros.httpd
|
||||
|
||||
%changelog
|
||||
* Mon May 20 2013 Jan Kaluza <jkaluza@redhat.com> - 2.4.4-6
|
||||
- htpasswd/htdbm: fix hash generation bug (#956344)
|
||||
- do not dump vhosts twice in httpd -S output (#928761)
|
||||
- mod_cache: fix potential crash caused by uninitialized variable (#954109)
|
||||
|
||||
* Thu Apr 18 2013 Jan Kaluza <jkaluza@redhat.com> - 2.4.4-5
|
||||
- execute systemctl reload as result of apachectl graceful
|
||||
- mod_ssl: ignore SNI hints unless required by config
|
||||
|
Loading…
Reference in New Issue
Block a user