# HG changeset patch
# User Kyle Moffett <[EMAIL PROTECTED]>
# Node ID 77475acbe89242e63e6fd73dc66fe52643011ed7
# Parent  43cd2abd0f4c5d2e8ee4666d6bf1f0b96e252e54
Fix a bug where sock_reset_flag() was called without lock_sock()

diff -r 43cd2abd0f4c -r 77475acbe892 net/core/sock.c
--- a/net/core/sock.c   Wed Jul 27 04:02:15 2005
+++ b/net/core/sock.c   Wed Jul 27 17:38:27 2005
@@ -206,13 +206,14 @@
         */
 
 #ifdef SO_DONTLINGER           /* Compatibility item... */
-       switch (optname) {
-               case SO_DONTLINGER:
-                       sock_reset_flag(sk, SOCK_LINGER);
-                       return 0;
-       }
-#endif 
-               
+       if (optname == SO_DONTLINGER) {
+               lock_sock(sk);
+               sock_reset_flag(sk, SOCK_LINGER);
+               release_sock(sk);
+               return 0;
+       }
+#endif
+       
        if(optlen<sizeof(int))
                return(-EINVAL);
        

Cheers,
Kyle Moffett

--
I lost interest in "blade servers" when I found they didn't throw knives at
people who weren't supposed to be in your machine room.
  -- Anthony de Boer


Reply via email to