svn commit: r300416 - head/sys/compat/linux
Dmitry Chagin
dchagin at FreeBSD.org
Sun May 22 12:49:09 UTC 2016
Author: dchagin
Date: Sun May 22 12:49:08 2016
New Revision: 300416
URL: https://svnweb.freebsd.org/changeset/base/300416
Log:
Add a missing errno translation for SO_ERROR optname.
PR: 135458
Reported by: Stefan Schmidt @ stadtbuch.de
MFC after: 1 week
Modified:
head/sys/compat/linux/linux_socket.c
Modified: head/sys/compat/linux/linux_socket.c
==============================================================================
--- head/sys/compat/linux/linux_socket.c Sun May 22 12:46:34 2016 (r300415)
+++ head/sys/compat/linux/linux_socket.c Sun May 22 12:49:08 2016 (r300416)
@@ -1608,10 +1608,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);
@@ -1650,6 +1650,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;
}
More information about the svn-src-all
mailing list