Author: dchagin
Date: Sun Jun  5 07:38:56 2016
New Revision: 301429
URL: https://svnweb.freebsd.org/changeset/base/301429

Log:
  MFC r300416:
  
  Add a missing errno translation for SO_ERROR optname.
  
  PR:           135458
  Reported by:  Stefan Schmidt

Modified:
  stable/10/sys/compat/linux/linux_socket.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/compat/linux/linux_socket.c
==============================================================================
--- stable/10/sys/compat/linux/linux_socket.c   Sun Jun  5 07:34:10 2016        
(r301428)
+++ stable/10/sys/compat/linux/linux_socket.c   Sun Jun  5 07:38:56 2016        
(r301429)
@@ -1594,10 +1594,10 @@ linux_getsockopt(struct thread *td, stru
        } */ bsd_args;
        l_timeval linux_tv;
        struct timeval tv;
-       socklen_t tv_len, xulen;
+       socklen_t tv_len, xulen, len;
        struct xucred xu;
        struct l_ucred lxu;
-       int error, name;
+       int error, name, newval;
 
        bsd_args.s = args->s;
        bsd_args.level = linux_to_bsd_sockopt_level(args->level);
@@ -1636,6 +1636,15 @@ linux_getsockopt(struct thread *td, stru
                        return (copyout(&lxu, PTRIN(args->optval), 
sizeof(lxu)));
                        /* NOTREACHED */
                        break;
+               case SO_ERROR:
+                       len = sizeof(newval);
+                       error = kern_getsockopt(td, args->s, bsd_args.level,
+                           name, &newval, UIO_SYSSPACE, &len);
+                       if (error)
+                               return (error);
+                       newval = -SV_ABI_ERRNO(td->td_proc, newval);
+                       return (copyout(&newval, PTRIN(args->optval), len));
+                       /* NOTREACHED */
                default:
                        break;
                }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to