Fix for 64bit time_t to prevent a segfault at startup.

ok jasper@ (maintainer)
This commit is contained in:
ajacoutot 2014-05-06 08:36:25 +00:00
parent 597f7cf1b7
commit 2bef45b262
6 changed files with 96 additions and 1 deletions

View File

@ -1,8 +1,9 @@
# $OpenBSD: Makefile,v 1.29 2013/09/28 08:33:24 jasper Exp $
# $OpenBSD: Makefile,v 1.30 2014/05/06 08:36:25 ajacoutot Exp $
COMMENT= monitoring and managing daemons utility
DISTNAME= monit-5.6
REVISION= 0
CATEGORIES= sysutils

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-libmonit_src_system_Time_c,v 1.1 2014/05/06 08:36:25 ajacoutot Exp $
Fix for 64bit time_t.
--- libmonit/src/system/Time.c.orig Thu May 10 22:52:38 2012
+++ libmonit/src/system/Time.c Tue May 6 10:31:47 2014
@@ -599,15 +599,15 @@ char *Time_uptime(time_t sec, char *result) {
result[0] = 0;
if (sec > 0) {
if ((r = sec/86400) > 0) {
- n = snprintf(result, 24, "%ldd", r);
+ n = snprintf(result, 24, "%lldd", r);
sec -= r * 86400;
}
if((r = sec/3600) > 0) {
- n += snprintf(result + n, (24 - n), "%s%ldh", n ? ", " : "", r);
+ n += snprintf(result + n, (24 - n), "%s%lldh", n ? ", " : "", r);
sec -= r * 3600;
}
r = sec/60;
- snprintf(result + n, (24 - n), "%s%ldm", n ? ", " : "", r);
+ snprintf(result + n, (24 - n), "%s%lldm", n ? ", " : "", r);
}
}
return result;

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-libmonit_test_InputStreamTest_c,v 1.1 2014/05/06 08:36:25 ajacoutot Exp $
Fix for 64bit time_t.
--- libmonit/test/InputStreamTest.c.orig Tue May 6 10:22:29 2014
+++ libmonit/test/InputStreamTest.c Tue May 6 10:22:36 2014
@@ -43,7 +43,7 @@ int main(void) {
{
assert((fd = File_open(DATA, "r")) >= 0);
in = InputStream_new(fd);
- printf("\tCurrent timeout: %ldms\n", InputStream_getTimeout(in));
+ printf("\tCurrent timeout: %lldms\n", InputStream_getTimeout(in));
InputStream_setTimeout(in, TIMEOUT);
assert(InputStream_getTimeout(in) == TIMEOUT);
printf("\tTimeout set to: %dms\n", TIMEOUT);

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-libmonit_test_OutputStreamTest_c,v 1.1 2014/05/06 08:36:25 ajacoutot Exp $
Fix for 64bit time_t.
--- libmonit/test/OutputStreamTest.c.orig Tue May 6 10:19:55 2014
+++ libmonit/test/OutputStreamTest.c Tue May 6 10:20:02 2014
@@ -39,7 +39,7 @@ int main(void) {
printf("=> Test1: get/set timeout\n");
{
out = OutputStream_new(STDOUT);
- printf("\tCurrent timeout: %ldms\n", OutputStream_getTimeout(out));
+ printf("\tCurrent timeout: %lldms\n", OutputStream_getTimeout(out));
OutputStream_setTimeout(out, TIMEOUT);
assert(OutputStream_getTimeout(out) == TIMEOUT);
printf("\tTimeout set to: %dms\n", TIMEOUT);

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-libmonit_test_TimeTest_c,v 1.1 2014/05/06 08:36:25 ajacoutot Exp $
Fix for 64bit time_t.
--- libmonit/test/TimeTest.c.orig Tue May 6 10:20:17 2014
+++ libmonit/test/TimeTest.c Tue May 6 10:20:22 2014
@@ -29,7 +29,7 @@ int main(void) {
char d1[STRLEN];
char s[] = " Thu, 17 Oct 2002 19:10:01; ";
char y[] = "Year: 2011 Day: 14 Month: June";
- printf("\tParsing a null date string: %ld\n", Time_parse(NULL));
+ printf("\tParsing a null date string: %lld\n", Time_parse(NULL));
assert(Time_parse(NULL) == -1);
r = Time_parse(s);
printf("\tParsed datestring has value: %ld\n", r);

View File

@ -0,0 +1,24 @@
$OpenBSD: patch-src_xml_c,v 1.1 2014/05/06 08:36:25 ajacoutot Exp $
Fix for 64bit time_t.
--- src/xml.c.orig Tue May 6 10:22:45 2014
+++ src/xml.c Tue May 6 10:26:58 2014
@@ -142,7 +142,7 @@ static void status_service(Service_T S, StringBuffer_T
else
StringBuffer_append(B, "<service type=\"%d\"><name>%s</name>", S->type, S->name ? S->name : "");
StringBuffer_append(B,
- "<collected_sec>%ld</collected_sec>"
+ "<collected_sec>%lld</collected_sec>"
"<collected_usec>%ld</collected_usec>"
"<status>%d</status>"
"<status_hint>%d</status_hint>"
@@ -347,7 +347,7 @@ static void status_event(Event_T E, StringBuffer_T B)
struct timeval *tv = Event_get_collected(E);
StringBuffer_append(B,
"<event>"
- "<collected_sec>%ld</collected_sec>"
+ "<collected_sec>%lld</collected_sec>"
"<collected_usec>%ld</collected_usec>"
"<service>%s</service>"
"<type>%d</type>"