svn commit: r355722 - in head/sys: compat/linux kern sys

Edward Tomasz Napierala trasz at FreeBSD.org
Fri Dec 13 18:39:38 UTC 2019


Author: trasz
Date: Fri Dec 13 18:39:36 2019
New Revision: 355722
URL: https://svnweb.freebsd.org/changeset/base/355722

Log:
  Add kern_getsid() and use it in Linuxulator; no functional changes.
  
  Reviewed by:	kib
  MFC after:	2 weeks
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D22647

Modified:
  head/sys/compat/linux/linux_misc.c
  head/sys/kern/kern_prot.c
  head/sys/sys/syscallsubr.h

Modified: head/sys/compat/linux/linux_misc.c
==============================================================================
--- head/sys/compat/linux/linux_misc.c	Fri Dec 13 18:35:48 2019	(r355721)
+++ head/sys/compat/linux/linux_misc.c	Fri Dec 13 18:39:36 2019	(r355722)
@@ -1599,14 +1599,11 @@ linux_getuid(struct thread *td, struct linux_getuid_ar
 	return (0);
 }
 
-
 int
 linux_getsid(struct thread *td, struct linux_getsid_args *args)
 {
-	struct getsid_args bsd;
 
-	bsd.pid = args->pid;
-	return (sys_getsid(td, &bsd));
+	return (kern_getsid(td, args->pid));
 }
 
 int

Modified: head/sys/kern/kern_prot.c
==============================================================================
--- head/sys/kern/kern_prot.c	Fri Dec 13 18:35:48 2019	(r355721)
+++ head/sys/kern/kern_prot.c	Fri Dec 13 18:39:36 2019	(r355722)
@@ -190,14 +190,21 @@ struct getsid_args {
 int
 sys_getsid(struct thread *td, struct getsid_args *uap)
 {
+
+	return (kern_getsid(td, uap->pid));
+}
+
+int
+kern_getsid(struct thread *td, pid_t pid)
+{
 	struct proc *p;
 	int error;
 
-	if (uap->pid == 0) {
+	if (pid == 0) {
 		p = td->td_proc;
 		PROC_LOCK(p);
 	} else {
-		p = pfind(uap->pid);
+		p = pfind(pid);
 		if (p == NULL)
 			return (ESRCH);
 		error = p_cansee(td, p);

Modified: head/sys/sys/syscallsubr.h
==============================================================================
--- head/sys/sys/syscallsubr.h	Fri Dec 13 18:35:48 2019	(r355721)
+++ head/sys/sys/syscallsubr.h	Fri Dec 13 18:39:36 2019	(r355722)
@@ -140,6 +140,7 @@ int	kern_getppid(struct thread *);
 int	kern_getpeername(struct thread *td, int fd, struct sockaddr **sa,
 	    socklen_t *alen);
 int	kern_getrusage(struct thread *td, int who, struct rusage *rup);
+int	kern_getsid(struct thread *td, pid_t pid);
 int	kern_getsockname(struct thread *td, int fd, struct sockaddr **sa,
 	    socklen_t *alen);
 int	kern_getsockopt(struct thread *td, int s, int level, int name,


More information about the svn-src-head mailing list