EINTR problem in async_smb.c

Jeremy Allison jra at samba.org
Thu Oct 9 22:21:10 GMT 2008


Volker,

	I think the following patch is needed
in async_smb.c to prevent problems with signal
delivery when called from smbd (or other signal
handling programs).

Can you comment please ?

Jeremy.
-------------- next part --------------
diff --git a/source/libsmb/async_smb.c b/source/libsmb/async_smb.c
index 9346264..935ae47 100644
--- a/source/libsmb/async_smb.c
+++ b/source/libsmb/async_smb.c
@@ -360,7 +360,7 @@ static void cli_state_handler(struct event_context *event_ctx,
 		}
 		cli->evt_inbuf = tmp;
 
-		res = recv(cli->fd, cli->evt_inbuf + old_size, available, 0);
+		res = sys_recv(cli->fd, cli->evt_inbuf + old_size, available, 0);
 		if (res == -1) {
 			DEBUG(10, ("recv failed: %s\n", strerror(errno)));
 			status = map_nt_error_from_unix(errno);
@@ -404,7 +404,7 @@ static void cli_state_handler(struct event_context *event_ctx,
 			return;
 		}
 
-		sent = send(cli->fd, req->outbuf + req->sent,
+		sent = sys_send(cli->fd, req->outbuf + req->sent,
 			    to_send - req->sent, 0);
 
 		if (sent < 0) {


More information about the samba-technical mailing list