Update Buildroot 2020.02.2 (#682)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
From 5b95d256387b45fbe33f7ee7890ae35afdd5c371 Mon Sep 17 00:00:00 2001
|
||||
From: Joe Orton <jorton@apache.org>
|
||||
Date: Fri, 13 Mar 2020 14:34:18 +0000
|
||||
Subject: [PATCH] * server/log.c (ap_log_pid): Use a temporary file, then
|
||||
rename once successfully written; also add error checking. Avoids startup
|
||||
failures if a previous httpd invocation crashed while writing the pidfile.
|
||||
|
||||
Submitted by: Nicolas Carrier <carrier.nicolas0 gmail.com>, jorton
|
||||
Github: closes #100, closes #69
|
||||
PR: 63140
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1875153 13f79535-47bb-0310-9956-ffa450edef68
|
||||
Signed-off-by: Nicolas Carrier <nicolas.carrier@orolia.com>
|
||||
---
|
||||
server/log.c | 33 ++++++++++++++++++++++++++-------
|
||||
1 file changed, 26 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/server/log.c b/server/log.c
|
||||
index f0bde6e4b8..8d54b4e057 100644
|
||||
--- a/server/log.c
|
||||
+++ b/server/log.c
|
||||
@@ -1598,6 +1598,9 @@ AP_DECLARE(void) ap_log_pid(apr_pool_t *p, const char *filename)
|
||||
pid_t mypid;
|
||||
apr_status_t rv;
|
||||
const char *fname;
|
||||
+ char *temp_fname;
|
||||
+ apr_fileperms_t perms;
|
||||
+ char pidstr[64];
|
||||
|
||||
if (!filename) {
|
||||
return;
|
||||
@@ -1626,19 +1629,35 @@ AP_DECLARE(void) ap_log_pid(apr_pool_t *p, const char *filename)
|
||||
fname);
|
||||
}
|
||||
|
||||
- if ((rv = apr_file_open(&pid_file, fname,
|
||||
- APR_WRITE | APR_CREATE | APR_TRUNCATE,
|
||||
- APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD, p))
|
||||
- != APR_SUCCESS) {
|
||||
+ temp_fname = apr_pstrcat(p, fname, ".XXXXXX", NULL);
|
||||
+ rv = apr_file_mktemp(&pid_file, temp_fname,
|
||||
+ APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE, p);
|
||||
+ if (rv != APR_SUCCESS) {
|
||||
ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL, APLOGNO(00099)
|
||||
- "could not create %s", fname);
|
||||
+ "could not create %s", temp_fname);
|
||||
ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, APLOGNO(00100)
|
||||
"%s: could not log pid to file %s",
|
||||
ap_server_argv0, fname);
|
||||
exit(1);
|
||||
}
|
||||
- apr_file_printf(pid_file, "%" APR_PID_T_FMT APR_EOL_STR, mypid);
|
||||
- apr_file_close(pid_file);
|
||||
+
|
||||
+ apr_snprintf(pidstr, sizeof pidstr, "%" APR_PID_T_FMT APR_EOL_STR, mypid);
|
||||
+
|
||||
+ perms = APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD;
|
||||
+ rv = apr_file_perms_set(temp_fname, perms);
|
||||
+ if (rv == APR_SUCCESS)
|
||||
+ rv = apr_file_write_full(pid_file, pidstr, strlen(pidstr), NULL);
|
||||
+ if (rv == APR_SUCCESS)
|
||||
+ rv = apr_file_close(pid_file);
|
||||
+ if (rv == APR_SUCCESS)
|
||||
+ rv = apr_file_rename(temp_fname, fname, p);
|
||||
+ if (rv != APR_SUCCESS) {
|
||||
+ ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL, APLOGNO(10231)
|
||||
+ "%s: Failed creating pid file %s",
|
||||
+ ap_server_argv0, temp_fname);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
saved_pid = mypid;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# From http://archive.apache.org/dist/httpd/httpd-2.4.41.tar.bz2.sha256
|
||||
sha256 133d48298fe5315ae9366a0ec66282fa4040efa5d566174481077ade7d18ea40 httpd-2.4.41.tar.bz2
|
||||
# From http://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2.sha256
|
||||
sha256 a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43 httpd-2.4.43.tar.bz2
|
||||
# Locally computed
|
||||
sha256 c49c0819a726b70142621715dae3159c47b0349c2bc9db079070f28dadac0229 LICENSE
|
||||
sha256 47b8c2b6c3309282a99d4a3001575c790fead690cc14734628c4667d2bbffc43 LICENSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APACHE_VERSION = 2.4.41
|
||||
APACHE_VERSION = 2.4.43
|
||||
APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2
|
||||
APACHE_SITE = http://archive.apache.org/dist/httpd
|
||||
APACHE_LICENSE = Apache-2.0
|
||||
@@ -99,6 +99,7 @@ APACHE_CONF_OPTS += --disable-deflate
|
||||
endif
|
||||
|
||||
define APACHE_FIX_STAGING_APACHE_CONFIG
|
||||
$(SED) 's%"/usr/bin"%"$(STAGING_DIR)/usr/bin"%' $(STAGING_DIR)/usr/bin/apxs
|
||||
$(SED) 's%/usr/build%$(STAGING_DIR)/usr/build%' $(STAGING_DIR)/usr/bin/apxs
|
||||
$(SED) 's%^prefix =.*%prefix = $(STAGING_DIR)/usr%' $(STAGING_DIR)/usr/build/config_vars.mk
|
||||
endef
|
||||
|
||||
Reference in New Issue
Block a user