svn commit: r563405 - in head/net: samba411 samba411/files samba412 samba412/files samba413 samba413/files
Dimitry Andric
dim at FreeBSD.org
Sat Jan 30 13:22:41 UTC 2021
Author: dim (src committer)
Date: Sat Jan 30 13:22:39 2021
New Revision: 563405
URL: https://svnweb.freebsd.org/changeset/ports/563405
Log:
net/samba411 net/samba412 net/samba413: Fix zero-sized VLAs
With recent versions of clang, samba could dump core shortly after
startup, terminating with either SIGILL or SIGSEGV.
Investigation showed that samba is using C99 variable length arrays
(VLAs), and in some cases the length of these arrays would become zero.
Since this is undefined behavior, various interesting things would
happen, often ending in segfaults.
Fix this by avoiding to use zero as the length for these VLA
declarations.
A similar patch was also sent upstream, and was accepted and included in
subsequent samba releases.
See also: https://bugzilla.samba.org/show_bug.cgi?id=14605
Reported by: Dries Michiels <driesm.michiels at gmail.com>
PR: 252157
MFH: 2021Q1
Added:
head/net/samba411/files/patch-source3_lib_messages.c (contents, props changed)
head/net/samba412/files/patch-source3_lib_messages.c (contents, props changed)
head/net/samba413/files/patch-source3_lib_messages.c (contents, props changed)
Modified:
head/net/samba411/Makefile
head/net/samba412/Makefile
head/net/samba413/Makefile
Modified: head/net/samba411/Makefile
==============================================================================
--- head/net/samba411/Makefile Sat Jan 30 13:19:45 2021 (r563404)
+++ head/net/samba411/Makefile Sat Jan 30 13:22:39 2021 (r563405)
@@ -3,7 +3,7 @@
PORTNAME= ${SAMBA4_BASENAME}411
PORTVERSION= ${SAMBA4_VERSION}
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES?= net
MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc
DISTNAME= ${SAMBA4_DISTNAME}
Added: head/net/samba411/files/patch-source3_lib_messages.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/samba411/files/patch-source3_lib_messages.c Sat Jan 30 13:22:39 2021 (r563405)
@@ -0,0 +1,29 @@
+--- source3/lib/messages.c.orig 2020-01-08 10:24:52 UTC
++++ source3/lib/messages.c
+@@ -158,7 +158,7 @@ struct messaging_rec *messaging_rec_create(
+
+ {
+ struct messaging_rec rec;
+- int64_t fds64[num_fds];
++ int64_t fds64[MAX(1, num_fds)];
+ size_t i;
+
+ for (i=0; i<num_fds; i++) {
+@@ -392,7 +392,7 @@ static void messaging_recv_cb(struct tevent_context *e
+ private_data, struct messaging_context);
+ struct server_id_buf idbuf;
+ struct messaging_rec rec;
+- int64_t fds64[MIN(num_fds, INT8_MAX)];
++ int64_t fds64[MAX(1, MIN(num_fds, INT8_MAX))];
+ size_t i;
+
+ if (msg_len < MESSAGE_HDR_LENGTH) {
+@@ -1348,7 +1348,7 @@ static void messaging_dispatch_rec(struct messaging_co
+
+ if (ev != msg_ctx->event_ctx) {
+ struct iovec iov;
+- int fds[rec->num_fds];
++ int fds[MAX(1, rec->num_fds)];
+ int ret;
+
+ /*
Modified: head/net/samba412/Makefile
==============================================================================
--- head/net/samba412/Makefile Sat Jan 30 13:19:45 2021 (r563404)
+++ head/net/samba412/Makefile Sat Jan 30 13:22:39 2021 (r563405)
@@ -3,7 +3,7 @@
PORTNAME= ${SAMBA4_BASENAME}412
PORTVERSION= ${SAMBA4_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= net
MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc
DISTNAME= ${SAMBA4_DISTNAME}
Added: head/net/samba412/files/patch-source3_lib_messages.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/samba412/files/patch-source3_lib_messages.c Sat Jan 30 13:22:39 2021 (r563405)
@@ -0,0 +1,29 @@
+--- source3/lib/messages.c.orig 2020-02-28 08:59:35 UTC
++++ source3/lib/messages.c
+@@ -157,7 +157,7 @@ struct messaging_rec *messaging_rec_create(
+
+ {
+ struct messaging_rec rec;
+- int64_t fds64[num_fds];
++ int64_t fds64[MAX(1, num_fds)];
+ size_t i;
+
+ for (i=0; i<num_fds; i++) {
+@@ -391,7 +391,7 @@ static void messaging_recv_cb(struct tevent_context *e
+ private_data, struct messaging_context);
+ struct server_id_buf idbuf;
+ struct messaging_rec rec;
+- int64_t fds64[MIN(num_fds, INT8_MAX)];
++ int64_t fds64[MAX(1, MIN(num_fds, INT8_MAX))];
+ size_t i;
+
+ if (msg_len < MESSAGE_HDR_LENGTH) {
+@@ -1375,7 +1375,7 @@ static void messaging_dispatch_rec(struct messaging_co
+
+ if (ev != msg_ctx->event_ctx) {
+ struct iovec iov;
+- int fds[rec->num_fds];
++ int fds[MAX(1, rec->num_fds)];
+ int ret;
+
+ /*
Modified: head/net/samba413/Makefile
==============================================================================
--- head/net/samba413/Makefile Sat Jan 30 13:19:45 2021 (r563404)
+++ head/net/samba413/Makefile Sat Jan 30 13:22:39 2021 (r563405)
@@ -3,7 +3,7 @@
PORTNAME= ${SAMBA4_BASENAME}413
PORTVERSION= ${SAMBA4_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= net
MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc
DISTNAME= ${SAMBA4_DISTNAME}
Added: head/net/samba413/files/patch-source3_lib_messages.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/samba413/files/patch-source3_lib_messages.c Sat Jan 30 13:22:39 2021 (r563405)
@@ -0,0 +1,29 @@
+--- source3/lib/messages.c.orig 2020-07-09 09:33:56 UTC
++++ source3/lib/messages.c
+@@ -157,7 +157,7 @@ struct messaging_rec *messaging_rec_create(
+
+ {
+ struct messaging_rec rec;
+- int64_t fds64[num_fds];
++ int64_t fds64[MAX(1, num_fds)];
+ size_t i;
+
+ for (i=0; i<num_fds; i++) {
+@@ -391,7 +391,7 @@ static void messaging_recv_cb(struct tevent_context *e
+ private_data, struct messaging_context);
+ struct server_id_buf idbuf;
+ struct messaging_rec rec;
+- int64_t fds64[MIN(num_fds, INT8_MAX)];
++ int64_t fds64[MAX(1, MIN(num_fds, INT8_MAX))];
+ size_t i;
+
+ if (msg_len < MESSAGE_HDR_LENGTH) {
+@@ -1371,7 +1371,7 @@ static void messaging_dispatch_rec(struct messaging_co
+
+ if (ev != msg_ctx->event_ctx) {
+ struct iovec iov;
+- int fds[rec->num_fds];
++ int fds[MAX(1, rec->num_fds)];
+ int ret;
+
+ /*
More information about the svn-ports-all
mailing list