[SCM] Samba Shared Repository - branch v3-4-test updated

Karolin Seeger kseeger at samba.org
Thu Apr 14 12:59:23 MDT 2011


The branch, v3-4-test has been updated
       via  7a801a8 Allow NULL queue to writev_send
      from  22b100f WHATSNEW: Start 3.4.13 release notes.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit 7a801a842c7c6636c654489cb53bb8271c6927c8
Author: Volker Lendecke <vl at samba.org>
Date:   Sun May 10 10:49:18 2009 +0200

    Allow NULL queue to writev_send
    
    Fix bug #8086 - null pointer reference crashes winbind.

-----------------------------------------------------------------------

Summary of changes:
 lib/async_req/async_sock.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c
index 39705f4..c428e3c 100644
--- a/lib/async_req/async_sock.c
+++ b/lib/async_req/async_sock.c
@@ -387,11 +387,11 @@ struct tevent_req *writev_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
 			       struct tevent_queue *queue, int fd,
 			       struct iovec *iov, int count)
 {
-	struct tevent_req *result;
+	struct tevent_req *req;
 	struct writev_state *state;
 
-	result = tevent_req_create(mem_ctx, &state, struct writev_state);
-	if (result == NULL) {
+	req = tevent_req_create(mem_ctx, &state, struct writev_state);
+	if (req == NULL) {
 		return NULL;
 	}
 	state->ev = ev;
@@ -404,12 +404,22 @@ struct tevent_req *writev_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
 		goto fail;
 	}
 
-	if (!tevent_queue_add(queue, ev, result, writev_trigger, NULL)) {
+	if (queue == NULL) {
+		struct tevent_fd *fde;
+		fde = tevent_add_fd(state->ev, state, state->fd,
+				    TEVENT_FD_WRITE, writev_handler, req);
+		if (tevent_req_nomem(fde, req)) {
+			return tevent_req_post(req, ev);
+		}
+		return req;
+	}
+
+	if (!tevent_queue_add(queue, ev, req, writev_trigger, NULL)) {
 		goto fail;
 	}
-	return result;
+	return req;
  fail:
-	TALLOC_FREE(result);
+	TALLOC_FREE(req);
 	return NULL;
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list