svn commit: r198019 - user/kmacy/releng_8_fcs/sys/kern
Kip Macy
kmacy at FreeBSD.org
Tue Oct 13 05:05:55 UTC 2009
Author: kmacy
Date: Tue Oct 13 05:05:54 2009
New Revision: 198019
URL: http://svn.freebsd.org/changeset/base/198019
Log:
crdup without sockbuf held
Modified:
user/kmacy/releng_8_fcs/sys/kern/uipc_socket.c
Modified: user/kmacy/releng_8_fcs/sys/kern/uipc_socket.c
==============================================================================
--- user/kmacy/releng_8_fcs/sys/kern/uipc_socket.c Tue Oct 13 04:54:13 2009 (r198018)
+++ user/kmacy/releng_8_fcs/sys/kern/uipc_socket.c Tue Oct 13 05:05:54 2009 (r198019)
@@ -3525,14 +3525,15 @@ sendfile_task_func(void *context, int pe
so = sock_fp->f_data;
sb = &so->so_snd;
SOCKBUF_UNLOCK_ASSERT(sb);
+ if (sr->sr_ucred == NULL &&
+ (sr->sr_ucred = crdup(sr->sr_proc->p_ucred)) == NULL) {
+ SOCKBUF_LOCK(sb);
+ goto done;
+ }
SOCKBUF_LOCK(sb);
if ((so->so_state & SS_ISCONNECTED) == 0)
goto done;
- if (sr->sr_ucred == NULL &&
- (sr->sr_ucred = crdup(sr->sr_proc->p_ucred)) == NULL)
- goto done;
-
sb->sb_flags &= ~(SB_SENDING|SB_SENDING_TASK);
if (sb->sb_state & SBS_CANTSENDMORE) {
CTR1(KTR_SPARE2, "SBS_CANTSENDMORE - socket %p", so);
More information about the svn-src-user
mailing list