Skip to content

Commit bfe29af

Browse files
committed
merge maint into master
2 parents ceeddd9 + d81b188 commit bfe29af

16 files changed

+88
-36
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ autom4te.cache
88
config.log
99
config.status
1010
daemon-init
11+
openrc-init
1112
Makefile
1213
tags
1314
.deps/

Changelog

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
Nagios Core 4 Change Log
33
########################
44

5+
6+
4.3.4 - 2017-08-24
7+
------------------
8+
* Improved config file parsing (Mark Felder)
9+
* Fixed configure script to check for existence of /run for lock file (in regards to CVE-2017-12847, Bryan Heden)
10+
* Use absolute paths when deleting check results files (Emmanuel Dreyfus)
11+
* Add sanity checking in reassign_worker (sq5bpf)
12+
13+
514
4.3.3 - 2017-08-12
615
------------------
716
* xodtemplate.c wrong option-deprecation code warning (alex2grad / John Frickson)
@@ -10,7 +19,7 @@ Nagios Core 4 Change Log
1019
* New Macro(s) to generate URL for host / service object (John Frickson)
1120
* Fix minor map issues (Troy Lea)
1221
* Fix lockfile issues (Bryan Heden)
13-
* Switch order of daemon_init and drop_priveleges (Bryan Heden)
22+
* Switch order of daemon_init and drop_priveleges (CVE-2017-12847, Bryan Heden)
1423
* Add an OpenRC init script (Michael Orlitzky)
1524

1625

THANKS

+3
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,12 @@ wrong, please let me know.
184184
* Luigi Balzano
185185
* Luiz Felipe R E
186186
* Luke Ross
187+
* Emmanuel Dreyfus
187188
* Marc Powell
188189
* Marcus Fleige
189190
* Marcus Hildenbrand
190191
* Mark DeTrano
192+
* Mark Felder
191193
* Mark Frost
192194
* Mark Goldfinch
193195
* Mark Schenker
@@ -285,6 +287,7 @@ wrong, please let me know.
285287
* Sergio Guzman
286288
* Shad Lords
287289
* Simon Beale
290+
* sq5bpf
288291
* Stanley Hopcroft
289292
* Stefan Rompf
290293
* Stefan Schurtz

base/config.c

+5-6
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ int read_main_config_file(char *main_config_file) {
107107
/* open the config file for reading */
108108
if((thefile = mmap_fopen(main_config_file)) == NULL) {
109109
logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Cannot open main configuration file '%s' for reading!", main_config_file);
110-
return ERROR;
110+
exit(ERROR);
111111
}
112112

113113
/* save the main config file macro */
@@ -1272,12 +1272,11 @@ int read_main_config_file(char *main_config_file) {
12721272
my_free(value);
12731273

12741274
/* make sure a log file has been specified */
1275-
strip(log_file);
1276-
if(!strcmp(log_file, "")) {
1277-
if(daemon_mode == FALSE)
1278-
printf("Error: Log file is not specified anywhere in main config file '%s'!\n", main_config_file);
1279-
return ERROR;
1275+
if(log_file == NULL) {
1276+
logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Log file is not specified anywhere in main config file '%s'!", main_config_file);
1277+
exit(ERROR);
12801278
}
1279+
strip(log_file);
12811280

12821281
return OK;
12831282
}

base/utils.c

+9-4
Original file line numberDiff line numberDiff line change
@@ -2133,7 +2133,11 @@ int process_check_result_queue(char *dirname) {
21332133

21342134
/* if the file is too old, we delete it */
21352135
if (stat_buf.st_mtime + max_check_result_file_age < time(NULL)) {
2136-
delete_check_result_file(dirfile->d_name);
2136+
2137+
if (delete_check_result_file(file) != OK
2138+
&& delete_check_result_file(dirfile->d_name) != OK)
2139+
logit(NSLOG_RUNTIME_WARNING, TRUE, "Error: Unable to delete '%s' or '%s'!", file, dirfile->d_name);
2140+
21372141
continue;
21382142
}
21392143

@@ -2363,16 +2367,17 @@ int process_check_result_file(char *fname) {
23632367
/* deletes as check result file, as well as its ok-to-go file */
23642368
int delete_check_result_file(char *fname) {
23652369
char *temp_buffer = NULL;
2370+
int result = OK;
23662371

23672372
/* delete the result file */
2368-
unlink(fname);
2373+
result = unlink(fname);
23692374

23702375
/* delete the ok-to-go file */
23712376
asprintf(&temp_buffer, "%s.ok", fname);
2372-
unlink(temp_buffer);
2377+
result |= unlink(temp_buffer);
23732378
my_free(temp_buffer);
23742379

2375-
return OK;
2380+
return result;
23762381
}
23772382

23782383

base/workers.c

+7-3
Original file line numberDiff line numberDiff line change
@@ -604,9 +604,13 @@ static void fo_reassign_wproc_job(void *job_)
604604
{
605605
struct wproc_job *job = (struct wproc_job *)job_;
606606
job->wp = get_worker(job->command);
607-
job->id = get_job_id(job->wp);
608-
/* macros aren't used right now anyways */
609-
wproc_run_job(job, NULL);
607+
if (job->wp != NULL) {
608+
job->id = get_job_id(job->wp);
609+
/* macros aren't used right now anyways */
610+
wproc_run_job(job, NULL);
611+
} else {
612+
logit(NSLOG_RUNTIME_WARNING, TRUE, "wproc: Error: can't get_worker() in fo_reassign_wproc_job\n");
613+
}
610614
}
611615

612616
static int handle_worker_result(int sd, int events, void *arg)

configure

+11-4
Original file line numberDiff line numberDiff line change
@@ -1405,7 +1405,8 @@ Optional Packages:
14051405
sets path to check results spool directory
14061406
--with-temp-dir=<path> sets path to temp directory
14071407
--with-init-dir=<path> sets directory to place init script into
1408-
--with-lockfile=<path> sets path for lock file (default: /run/nagios.lock)
1408+
--with-lockfile=<path> sets path for lock file (default:
1409+
[/var]/run/nagios.lock)
14091410
--with-iobroker=<method>
14101411
specify the method to use with iobroker: epoll,
14111412
poll, or select
@@ -2353,9 +2354,9 @@ ac_config_headers="$ac_config_headers include/config.h lib/snprintf.h lib/iobrok
23532354
23542355
PKG_NAME=nagios
23552356
2356-
PKG_VERSION="4.3.3"
2357+
PKG_VERSION="4.3.4"
23572358
PKG_HOME_URL="https://www.nagios.org/"
2358-
PKG_REL_DATE="2017-08-12"
2359+
PKG_REL_DATE="2017-08-24"
23592360
23602361
ac_aux_dir=
23612362
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -4942,11 +4943,17 @@ fi
49424943
49434944
49444945
4946+
default_lockfile_path=/var/run/nagios.lock
4947+
if test -d /run; then
4948+
default_lockfile_path=/run/nagios.lock
4949+
fi
4950+
4951+
49454952
# Check whether --with-lockfile was given.
49464953
if test "${with_lockfile+set}" = set; then :
49474954
withval=$with_lockfile; lockfile=$withval
49484955
else
4949-
lockfile=/run/nagios.lock
4956+
lockfile=$default_lockfile_path
49504957
49514958
fi
49524959

configure.ac

+12-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ AC_PREFIX_DEFAULT(/usr/local/nagios)
1010

1111
PKG_NAME=nagios
1212

13-
PKG_VERSION="4.3.3"
13+
PKG_VERSION="4.3.4"
1414
PKG_HOME_URL="https://www.nagios.org/"
15-
PKG_REL_DATE="2017-08-12"
15+
PKG_REL_DATE="2017-08-24"
1616

1717
dnl Figure out how to invoke "install" and what install options to use.
1818
AC_PROG_INSTALL
@@ -265,11 +265,19 @@ AC_ARG_WITH(init_dir,
265265
AC_SUBST(init_dir)
266266

267267
dnl User can override lock file location
268+
dnl Use the /var/run/ path by default
269+
dnl and use /run if it is available
270+
271+
default_lockfile_path=/var/run/nagios.lock
272+
if test -d /run; then
273+
default_lockfile_path=/run/nagios.lock
274+
fi
275+
268276
AC_ARG_WITH(lockfile,
269277
AC_HELP_STRING([--with-lockfile=<path>],
270-
[sets path for lock file (default: /run/nagios.lock)]),
278+
[sets path for lock file (default: [/var]/run/nagios.lock)]),
271279
lockfile=$withval,
272-
lockfile=/run/nagios.lock
280+
lockfile=$default_lockfile_path
273281
)
274282
AC_SUBST(lockfile)
275283

daemon-init.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ case "$1" in
209209

210210
su $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
211211
remove_commandfile
212-
su $NagiosUser -c "touch $NagiosRunFile"
212+
touch $NagiosRunFile
213213
$NagiosBin -d $NagiosCfgFile
214214
if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
215215

doxy.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PROJECT_NAME = Nagios
2-
PROJECT_NUMBER = 4.3.3
2+
PROJECT_NUMBER = 4.3.4
33
PROJECT_BRIEF = "Dev docs for Nagios core and neb-module hackers"
44

55
INPUT = lib/ docs/

html/main.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
include_once(dirname(__FILE__).'/includes/utils.inc.php');
33

4-
$this_version = '4.3.3';
4+
$this_version = '4.3.4';
55
$this_year = '2017';
66
?>
77
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
@@ -140,7 +140,7 @@ function setCoreStatusHTML(image, text) {
140140
<div id="currentversioninfo">
141141
<div class="product">Nagios<sup><span style="font-size: small;">&reg;</span></sup> Core<sup><span style="font-size: small;">&trade;</span></sup></div>
142142
<div class="version">Version <?php echo $this_version; ?></div>
143-
<div class="releasedate">August 12, 2017</div>
143+
<div class="releasedate">August 24, 2017</div>
144144
<div class="checkforupdates"><a href="https://www.nagios.org/checkforupdates/?version=<?php echo $this_version; ?>&amp;product=nagioscore" target="_blank">Check for updates</a></div>
145145
</div>
146146

html/side.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
include_once(dirname(__FILE__).'/includes/utils.inc.php');
33

4-
$this_version = '4.3.3';
4+
$this_version = '4.3.4';
55
$link_target = 'main';
66
?>
77
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

include/common.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
#include "shared.h"
2626

27-
#define PROGRAM_VERSION "4.3.3"
28-
#define PROGRAM_MODIFICATION_DATE "2017-08-12"
27+
#define PROGRAM_VERSION "4.3.4"
28+
#define PROGRAM_MODIFICATION_DATE "2017-08-24"
2929

3030
NAGIOS_BEGIN_DECL
3131

nagios.spec

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
Summary: Open Source host, service and network monitoring program
2323
Name: nagios
24-
Version: 4.3.3
24+
Version: 4.3.4
2525
Release: 2%{?dist}
2626
License: GPL
2727
Group: Applications/System

update-version

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ else
1212
fi
1313

1414
# Current version number
15-
CURRENTVERSION=4.3.3
15+
CURRENTVERSION=4.3.4
1616

1717
# Last date
18-
LASTDATE=2017-08-12
18+
LASTDATE=2017-08-24
1919

2020
if [ "x$1" = "x" ]
2121
then

xdata/xodtemplate.c

+20-4
Original file line numberDiff line numberDiff line change
@@ -679,15 +679,31 @@ int xodtemplate_process_config_file(char *filename, int options) {
679679
}
680680

681681
/* check validity of object type */
682-
if(strcmp(input, "timeperiod") && strcmp(input, "command") && strcmp(input, "contact") && strcmp(input, "contactgroup") && strcmp(input, "host") && strcmp(input, "hostgroup") && strcmp(input, "servicegroup") && strcmp(input, "service") && strcmp(input, "servicedependency") && strcmp(input, "serviceescalation") && strcmp(input, "hostgroupescalation") && strcmp(input, "hostdependency") && strcmp(input, "hostescalation")) {
683-
if(strcmp(input, "hostextinfo") && strcmp(input, "serviceextinfo")) {
682+
if( strcmp(input, "timeperiod")
683+
&& strcmp(input, "command")
684+
&& strcmp(input, "contact")
685+
&& strcmp(input, "contactgroup")
686+
&& strcmp(input, "host")
687+
&& strcmp(input, "hostgroup")
688+
&& strcmp(input, "servicegroup")
689+
&& strcmp(input, "service")
690+
&& strcmp(input, "servicedependency")
691+
&& strcmp(input, "serviceescalation")
692+
&& strcmp(input, "hostgroupescalation")
693+
&& strcmp(input, "hostdependency")
694+
&& strcmp(input, "hostescalation")) {
695+
696+
if ( strcmp(input, "hostextinfo")
697+
&& strcmp(input, "serviceextinfo")) {
698+
684699
logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Invalid object definition type '%s' in file '%s' on line %d.\n", input, filename, current_line);
685700
result = ERROR;
686701
break;
687-
}
688-
logit(NSLOG_CONFIG_WARNING, TRUE, "WARNING: Extinfo objects are deprecated and will be removed in future versions\n");
689702
}
690703

704+
logit(NSLOG_CONFIG_WARNING, TRUE, "WARNING: Extinfo objects are deprecated and will be removed in future versions\n");
705+
}
706+
691707
/* we're already in an object definition... */
692708
if(in_definition == TRUE) {
693709
logit(NSLOG_CONFIG_ERROR, TRUE, "Error: Unexpected start of object definition in file '%s' on line %d. Make sure you close preceding objects before starting a new one.\n", filename, current_line);

0 commit comments

Comments
 (0)