aboutsummaryrefslogtreecommitdiff
path: root/sysutils/fcron
diff options
context:
space:
mode:
authorEygene Ryabinkin <rea@FreeBSD.org>2011-09-25 07:24:25 +0000
committerEygene Ryabinkin <rea@FreeBSD.org>2011-09-25 07:24:25 +0000
commit4839c29cd15db05079dd28b04c4bf7476e9e9757 (patch)
tree4cbf4cf091aea250010f387ac46c757fd1dd522e /sysutils/fcron
parent369c12167bc0b2c5d86cf601d8dd4f4aaa5bc222 (diff)
downloadports-4839c29cd15db05079dd28b04c4bf7476e9e9757.tar.gz
ports-4839c29cd15db05079dd28b04c4bf7476e9e9757.zip
sysutils/fcron: fixup default argument promotion
When mode_t is char- or short-like, it will be promoted to the pure int when it is passed as the variable argument [1], so we should pass 'int' to the va_arg. I had also eliminated fflush for the stream opened read-only, since it will always fail and there is no need to flush read-only streams. [1] http://c-faq.com/~scs/cclass/int/sx11c.html Feature safe: yes PR: 152304
Notes
Notes: svn path=/head/; revision=282355
Diffstat (limited to 'sysutils/fcron')
-rw-r--r--sysutils/fcron/Makefile1
-rw-r--r--sysutils/fcron/files/patch-fileconf.c15
-rw-r--r--sysutils/fcron/files/patch-subs.c28
3 files changed, 44 insertions, 0 deletions
diff --git a/sysutils/fcron/Makefile b/sysutils/fcron/Makefile
index 8a97b20f9294..eee0d3eeed4f 100644
--- a/sysutils/fcron/Makefile
+++ b/sysutils/fcron/Makefile
@@ -8,6 +8,7 @@
PORTNAME= fcron
PORTVERSION= 3.0.6
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SUNSITE} \
http://fcron.free.fr/archives/ \
diff --git a/sysutils/fcron/files/patch-fileconf.c b/sysutils/fcron/files/patch-fileconf.c
new file mode 100644
index 000000000000..9255b7909027
--- /dev/null
+++ b/sysutils/fcron/files/patch-fileconf.c
@@ -0,0 +1,15 @@
+We don't need to fflush the file, since it is opened read-only.
+
+--- fileconf.c.orig 2011-07-18 19:55:28.726082293 +0400
++++ fileconf.c 2011-07-18 19:55:37.988079816 +0400
+@@ -264,10 +264,6 @@
+ cf->cf_next = file_base;
+ file_base = cf;
+
+- /* don't close as underlying fd may still be used by calling function */
+- if (fflush(file) != 0)
+- error_e("could not fflush() file_name");
+-
+ free(default_line.cl_runas);
+ free(default_line.cl_mailto);
+ free(default_line.cl_tz);
diff --git a/sysutils/fcron/files/patch-subs.c b/sysutils/fcron/files/patch-subs.c
new file mode 100644
index 000000000000..bee359d4e40e
--- /dev/null
+++ b/sysutils/fcron/files/patch-subs.c
@@ -0,0 +1,28 @@
+--- subs.c.orig 2011-07-18 17:28:21.745080904 +0400
++++ subs.c 2011-07-18 19:39:18.999087202 +0400
+@@ -121,7 +121,11 @@
+
+ if (flags & O_CREAT) {
+ va_start(ap, flags);
+- mode = va_arg(ap, mode_t);
++ /* Beware: default argument promotion. */
++ if (sizeof(int) > sizeof(mode_t))
++ mode = va_arg(ap, int);
++ else
++ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+
+@@ -179,7 +183,11 @@
+
+ if (flags & O_CREAT) {
+ va_start(ap, flags);
+- mode = va_arg(ap, mode_t);
++ /* Beware: default argument promotion. */
++ if (sizeof(int) > sizeof(mode_t))
++ mode = va_arg(ap, int);
++ else
++ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+