unveil prototypes

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

unveil prototypes

Alexander Bluhm
Hi,

Can we move the unveil function prototypes into the namei.h header
file?  This guarantees consistency.  Protected by _KERNEL, survived
make build.

ok?

bluhm

Index: kern/vfs_lookup.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/vfs_lookup.c,v
retrieving revision 1.80
diff -u -p -r1.80 vfs_lookup.c
--- kern/vfs_lookup.c 18 Jul 2019 18:06:17 -0000 1.80
+++ kern/vfs_lookup.c 26 Jul 2019 08:16:01 -0000
@@ -57,10 +57,6 @@
 #include <sys/ktrace.h>
 #endif

-void unveil_start_relative(struct proc *p, struct nameidata *ni);
-void unveil_check_component(struct proc *p, struct nameidata *ni, struct vnode *dp );
-int unveil_check_final(struct proc *p, struct nameidata *ni);
-
 int
 component_push(struct componentname *cnp, char *component, size_t len)
 {
Index: sys/namei.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/sys/namei.h,v
retrieving revision 1.40
diff -u -p -r1.40 namei.h
--- sys/namei.h 13 May 2019 22:55:27 -0000 1.40
+++ sys/namei.h 26 Jul 2019 08:17:03 -0000
@@ -204,6 +204,10 @@ void nchinit(void);
 struct mount;
 void cache_purgevfs(struct mount *);

+void unveil_start_relative(struct proc *, struct nameidata *);
+void unveil_check_component(struct proc *, struct nameidata *, struct vnode *);
+int unveil_check_final(struct proc *, struct nameidata *);
+
 extern struct pool namei_pool;

 #endif

Reply | Threaded
Open this post in threaded view
|

Re: unveil prototypes

Mark Kettenis
> Date: Sat, 27 Jul 2019 00:09:11 +0200
> From: Alexander Bluhm <[hidden email]>
>
> Hi,
>
> Can we move the unveil function prototypes into the namei.h header
> file?  This guarantees consistency.  Protected by _KERNEL, survived
> make build.
>
> ok?

Why?  If these are internal interfaces for the unveil subsystem it
makes sense not to put them in a header file.

> Index: kern/vfs_lookup.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/kern/vfs_lookup.c,v
> retrieving revision 1.80
> diff -u -p -r1.80 vfs_lookup.c
> --- kern/vfs_lookup.c 18 Jul 2019 18:06:17 -0000 1.80
> +++ kern/vfs_lookup.c 26 Jul 2019 08:16:01 -0000
> @@ -57,10 +57,6 @@
>  #include <sys/ktrace.h>
>  #endif
>
> -void unveil_start_relative(struct proc *p, struct nameidata *ni);
> -void unveil_check_component(struct proc *p, struct nameidata *ni, struct vnode *dp );
> -int unveil_check_final(struct proc *p, struct nameidata *ni);
> -
>  int
>  component_push(struct componentname *cnp, char *component, size_t len)
>  {
> Index: sys/namei.h
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/sys/namei.h,v
> retrieving revision 1.40
> diff -u -p -r1.40 namei.h
> --- sys/namei.h 13 May 2019 22:55:27 -0000 1.40
> +++ sys/namei.h 26 Jul 2019 08:17:03 -0000
> @@ -204,6 +204,10 @@ void nchinit(void);
>  struct mount;
>  void cache_purgevfs(struct mount *);
>
> +void unveil_start_relative(struct proc *, struct nameidata *);
> +void unveil_check_component(struct proc *, struct nameidata *, struct vnode *);
> +int unveil_check_final(struct proc *, struct nameidata *);
> +
>  extern struct pool namei_pool;
>
>  #endif
>
>

Reply | Threaded
Open this post in threaded view
|

Re: unveil prototypes

Alexander Bluhm
On Sat, Jul 27, 2019 at 12:41:24AM +0200, Mark Kettenis wrote:

> > Date: Sat, 27 Jul 2019 00:09:11 +0200
> > From: Alexander Bluhm <[hidden email]>
> >
> > Hi,
> >
> > Can we move the unveil function prototypes into the namei.h header
> > file?  This guarantees consistency.  Protected by _KERNEL, survived
> > make build.
> >
> > ok?
>
> Why?  If these are internal interfaces for the unveil subsystem it
> makes sense not to put them in a header file.

They are implemented in kern/kern_unveil.c and used in kern/vfs_lookup.c.
The usual way to keep caller and callee perameters synchronized is
to put a prototype into a header file.

bluhm

> > Index: kern/vfs_lookup.c
> > ===================================================================
> > RCS file: /data/mirror/openbsd/cvs/src/sys/kern/vfs_lookup.c,v
> > retrieving revision 1.80
> > diff -u -p -r1.80 vfs_lookup.c
> > --- kern/vfs_lookup.c 18 Jul 2019 18:06:17 -0000 1.80
> > +++ kern/vfs_lookup.c 26 Jul 2019 08:16:01 -0000
> > @@ -57,10 +57,6 @@
> >  #include <sys/ktrace.h>
> >  #endif
> >
> > -void unveil_start_relative(struct proc *p, struct nameidata *ni);
> > -void unveil_check_component(struct proc *p, struct nameidata *ni, struct vnode *dp );
> > -int unveil_check_final(struct proc *p, struct nameidata *ni);
> > -
> >  int
> >  component_push(struct componentname *cnp, char *component, size_t len)
> >  {
> > Index: sys/namei.h
> > ===================================================================
> > RCS file: /data/mirror/openbsd/cvs/src/sys/sys/namei.h,v
> > retrieving revision 1.40
> > diff -u -p -r1.40 namei.h
> > --- sys/namei.h 13 May 2019 22:55:27 -0000 1.40
> > +++ sys/namei.h 26 Jul 2019 08:17:03 -0000
> > @@ -204,6 +204,10 @@ void nchinit(void);
> >  struct mount;
> >  void cache_purgevfs(struct mount *);
> >
> > +void unveil_start_relative(struct proc *, struct nameidata *);
> > +void unveil_check_component(struct proc *, struct nameidata *, struct vnode *);
> > +int unveil_check_final(struct proc *, struct nameidata *);
> > +
> >  extern struct pool namei_pool;
> >
> >  #endif
> >
> >