Applied, thanks!

Richard, le ven. 09 oct. 2026 04:05:49 +0800, a ecrit:
> libps returns -1 as the owner UID for ownerless processes.  procfs maps
> this to opt_anon_owner for PID directories, but passes it directly to
> procfs_node_chown for their files, resulting in UID 4294967295 on
> hurd-amd64.
> 
> Use opt_anon_owner for these files as well.
> 
> To reproduce:
> - mount procfs with --anonymous-owner=12345;
> - create a process with empty authentication credentials;
> - stat its PID directory and its status and cmdline files.
>   The directory has UID 12345, but the files have UID 4294967295.
> 
> With this fix, the directory and both files have UID 12345.
> ---
>  procfs/process.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/procfs/process.c b/procfs/process.c
> index 3170b775..dd8b6cfe 100644
> --- a/procfs/process.c
> +++ b/procfs/process.c
> @@ -414,6 +414,7 @@ process_file_make_node (void *dir_hook, const void
> *entry_hook)
>    };
>    struct process_file_node *f;
>    struct node *np;
> +  int owner;
> 
>    f = malloc (sizeof *f);
>    if (! f)
> @@ -426,7 +427,8 @@ process_file_make_node (void *dir_hook, const void
> *entry_hook)
>    if (! np)
>      return NULL;
> 
> -  procfs_node_chown (np, proc_stat_owner_uid (f->ps));
> +  owner = proc_stat_owner_uid (f->ps);
> +  procfs_node_chown (np, owner >= 0 ? owner : opt_anon_owner);
>    if (f->desc->mode)
>      procfs_node_chmod (np, f->desc->mode);

> diff --git a/procfs/process.c b/procfs/process.c
> index 3170b775..dd8b6cfe 100644
> --- a/procfs/process.c
> +++ b/procfs/process.c
> @@ -414,6 +414,7 @@ process_file_make_node (void *dir_hook, const void 
> *entry_hook)
>    };
>    struct process_file_node *f;
>    struct node *np;
> +  int owner;
>  
>    f = malloc (sizeof *f);
>    if (! f)
> @@ -426,7 +427,8 @@ process_file_make_node (void *dir_hook, const void 
> *entry_hook)
>    if (! np)
>      return NULL;
>  
> -  procfs_node_chown (np, proc_stat_owner_uid (f->ps));
> +  owner = proc_stat_owner_uid (f->ps);
> +  procfs_node_chown (np, owner >= 0 ? owner : opt_anon_owner);
>    if (f->desc->mode)
>      procfs_node_chmod (np, f->desc->mode);
>  


-- 
Samuel
N: beep beep Miam miam? 
y: ++
a: kill -MIAM -1
 -+- #runtime < /dev/miam -+-

Reply via email to