[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Fri Jan 9 15:43:03 MST 2015
The branch, master has been updated
via f58545d lib: Simplify iov_buf
via 0e26e0f unix_msg: Fix 80-line formatting
via 764cfda Make sure response->extra_data.data is always cleared out
from fb35a22 test: Fix quoting
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f58545dbc2836cd3fdf351babb1304d84fd3e06d
Author: Volker Lendecke <vl at samba.org>
Date: Sun Dec 21 14:52:17 2014 +0100
lib: Simplify iov_buf
According to
https://www.securecoding.cert.org/confluence/display/seccode/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap
we only need to check against one operand.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Fri Jan 9 23:42:49 CET 2015 on sn-devel-104
commit 0e26e0f6f6b7d657fdd51202f5919328278824e6
Author: Volker Lendecke <vl at samba.org>
Date: Tue Nov 25 18:50:25 2014 +0100
unix_msg: Fix 80-line formatting
This is pretty fresh code, so hope this change does not fall under the "no
reformatting" rule yet
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 764cfda2804d036e418365ceac92c2cb8a07577a
Author: Matthew Newton <mcn4 at leicester.ac.uk>
Date: Thu Jan 8 15:11:15 2015 +0000
Make sure response->extra_data.data is always cleared out
Otherwise a bad read can sometimes cause the function to return -1 with
an invalid pointer in extra_data.data, which is attempted to be freed
by the caller (e.g. libwbclient/wbc_pam.c wbcAuthenticateUserEx())
by calling winbindd_free_response().
Reviewed-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
nsswitch/wb_common.c | 13 +++++++------
source3/lib/iov_buf.c | 4 ++--
source3/lib/unix_msg/unix_msg.c | 6 ++++--
3 files changed, 13 insertions(+), 10 deletions(-)
Changeset truncated at 500 lines:
diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c
index 44bfaf4..3b67df0 100644
--- a/nsswitch/wb_common.c
+++ b/nsswitch/wb_common.c
@@ -552,6 +552,13 @@ static int winbindd_read_reply(struct winbindd_response *response)
result1 = winbind_read_sock(response,
sizeof(struct winbindd_response));
+
+ /* We actually send the pointer value of the extra_data field from
+ the server. This has no meaning in the client's address space
+ so we clear it out. */
+
+ response->extra_data.data = NULL;
+
if (result1 == -1) {
return -1;
}
@@ -560,12 +567,6 @@ static int winbindd_read_reply(struct winbindd_response *response)
return -1;
}
- /* We actually send the pointer value of the extra_data field from
- the server. This has no meaning in the client's address space
- so we clear it out. */
-
- response->extra_data.data = NULL;
-
/* Read variable length response */
if (response->length > sizeof(struct winbindd_response)) {
diff --git a/source3/lib/iov_buf.c b/source3/lib/iov_buf.c
index f0e05a6..82a4af5 100644
--- a/source3/lib/iov_buf.c
+++ b/source3/lib/iov_buf.c
@@ -39,8 +39,8 @@ ssize_t iov_buf(const struct iovec *iov, int iovcnt,
tmp = needed + thislen;
- if ((tmp < needed) || (tmp < thislen)) {
- /* overflow */
+ if (tmp < needed) {
+ /* wrap */
return -1;
}
needed = tmp;
diff --git a/source3/lib/unix_msg/unix_msg.c b/source3/lib/unix_msg/unix_msg.c
index 51bb0c6..e4eed1c 100644
--- a/source3/lib/unix_msg/unix_msg.c
+++ b/source3/lib/unix_msg/unix_msg.c
@@ -922,7 +922,8 @@ static void unix_msg_recv(struct unix_dgram_ctx *dgram_ctx,
buflen -= sizeof(cookie);
if (cookie == 0) {
- ctx->recv_callback(ctx, buf, buflen, fds, num_fds, ctx->private_data);
+ ctx->recv_callback(ctx, buf, buflen, fds, num_fds,
+ ctx->private_data);
return;
}
@@ -974,7 +975,8 @@ static void unix_msg_recv(struct unix_dgram_ctx *dgram_ctx,
}
DLIST_REMOVE(ctx->msgs, msg);
- ctx->recv_callback(ctx, msg->buf, msg->msglen, fds, num_fds, ctx->private_data);
+ ctx->recv_callback(ctx, msg->buf, msg->msglen, fds, num_fds,
+ ctx->private_data);
free(msg);
return;
--
Samba Shared Repository
More information about the samba-cvs
mailing list