xref: /illumos-gate/usr/src/man/man3proc/pr_stat.3proc (revision a7d7cafedfa26f9e421bbcaf42b7387ef67c0a31)
143051d27SRobert Mustacchi.\"
243051d27SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
343051d27SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
443051d27SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
543051d27SRobert Mustacchi.\" 1.0 of the CDDL.
643051d27SRobert Mustacchi.\"
743051d27SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
843051d27SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
943051d27SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
1043051d27SRobert Mustacchi.\"
1143051d27SRobert Mustacchi.\"
1243051d27SRobert Mustacchi.\" Copyright 2015 Joyent, Inc.
1343051d27SRobert Mustacchi.\"
14*a7d7cafeSRobert Mustacchi.Dd November 27, 2023
1543051d27SRobert Mustacchi.Dt PR_STAT 3PROC
1643051d27SRobert Mustacchi.Os
1743051d27SRobert Mustacchi.Sh NAME
1843051d27SRobert Mustacchi.Nm pr_fstat ,
1972d3dbb9SYuri Pankov.Nm pr_fstat64 ,
2043051d27SRobert Mustacchi.Nm pr_lstat ,
2143051d27SRobert Mustacchi.Nm pr_lstat64 ,
2243051d27SRobert Mustacchi.Nm pr_stat ,
2343051d27SRobert Mustacchi.Nm pr_stat64
2443051d27SRobert Mustacchi.Nd inject stat system call into victim process
25*a7d7cafeSRobert Mustacchi.Sh LIBRARY
2643051d27SRobert Mustacchi.Lb libproc
27*a7d7cafeSRobert Mustacchi.Sh SYNOPSIS
2843051d27SRobert Mustacchi.In libproc.h
2943051d27SRobert Mustacchi.Ft int
3043051d27SRobert Mustacchi.Fo pr_fstat
3143051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3243051d27SRobert Mustacchi.Fa "int fd"
3343051d27SRobert Mustacchi.Fa "struct stat *buf"
3443051d27SRobert Mustacchi.Fc
3543051d27SRobert Mustacchi.Ft int
3643051d27SRobert Mustacchi.Fo pr_fstat64
3743051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
3843051d27SRobert Mustacchi.Fa "int fd"
3943051d27SRobert Mustacchi.Fa "struct stat64 *buf"
4043051d27SRobert Mustacchi.Fc
4143051d27SRobert Mustacchi.Ft int
4243051d27SRobert Mustacchi.Fo pr_lstat
4343051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
4443051d27SRobert Mustacchi.Fa "const char *path"
4543051d27SRobert Mustacchi.Fa "struct stat *buf"
4643051d27SRobert Mustacchi.Fc
4743051d27SRobert Mustacchi.Ft int
4843051d27SRobert Mustacchi.Fo pr_lstat64
4943051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
5043051d27SRobert Mustacchi.Fa "const char *path"
5143051d27SRobert Mustacchi.Fa "struct stat64 *buf"
5243051d27SRobert Mustacchi.Fc
5343051d27SRobert Mustacchi.Ft int
5443051d27SRobert Mustacchi.Fo pr_stat
5543051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
5643051d27SRobert Mustacchi.Fa "const char *path"
5743051d27SRobert Mustacchi.Fa "struct stat *buf"
5843051d27SRobert Mustacchi.Fc
5943051d27SRobert Mustacchi.Ft int
6043051d27SRobert Mustacchi.Fo pr_stat64
6143051d27SRobert Mustacchi.Fa "struct ps_prochandle *P"
6243051d27SRobert Mustacchi.Fa "const char *path"
6343051d27SRobert Mustacchi.Fa "struct stat64 *buf"
6443051d27SRobert Mustacchi.Fc
6543051d27SRobert Mustacchi.Sh DESCRIPTION
6643051d27SRobert MustacchiThe
6743051d27SRobert Mustacchi.Fn pr_stat ,
6843051d27SRobert Mustacchi.Fn pr_lstat ,
6943051d27SRobert Mustacchiand
7043051d27SRobert Mustacchi.Fn pr_fast
7143051d27SRobert Mustacchifunctions inject the
7243051d27SRobert Mustacchi.Xr stat 2 ,
7343051d27SRobert Mustacchi.Xr lstat 2 ,
7443051d27SRobert Mustacchiand
7543051d27SRobert Mustacchi.Xr fstat 2
7643051d27SRobert Mustacchisystem calls respectively into the target process
7743051d27SRobert Mustacchi.Fa P
7843051d27SRobert Mustacchiby means of the agent LWP.
7943051d27SRobert MustacchiIf the process handle
8043051d27SRobert Mustacchi.Fa P
8143051d27SRobert Mustacchiis the value
8243051d27SRobert Mustacchi.Dv NULL
8343051d27SRobert Mustacchithen this will be equivalent to calling
8443051d27SRobert Mustacchi.Xr stat 2 ,
8543051d27SRobert Mustacchi.Xr lstat 2 ,
8643051d27SRobert Mustacchior
8743051d27SRobert Mustacchi.Xr fstat 2
8843051d27SRobert Mustacchion the currently running process.
8943051d27SRobert Mustacchi.Pp
9043051d27SRobert MustacchiThe arguments
9143051d27SRobert Mustacchi.Fa path ,
9243051d27SRobert Mustacchiand
9343051d27SRobert Mustacchi.Fa buf
9443051d27SRobert Mustacchito the
9543051d27SRobert Mustacchi.Fn pr_stat
9643051d27SRobert Mustacchifunction have the same meaning as in
9743051d27SRobert Mustacchi.Xr stat 2 .
9843051d27SRobert MustacchiSee
9943051d27SRobert Mustacchi.Xr stat 2
10043051d27SRobert Mustacchifor the full description and purpose of the
10143051d27SRobert Mustacchi.Sy stat
10243051d27SRobert Mustacchisystem call and its arguments.
10343051d27SRobert Mustacchi.Pp
10443051d27SRobert MustacchiThe arguments
10543051d27SRobert Mustacchi.Fa fd ,
10643051d27SRobert Mustacchiand
10743051d27SRobert Mustacchi.Fa buf
10843051d27SRobert Mustacchito the
10943051d27SRobert Mustacchi.Fn pr_fstat
11043051d27SRobert Mustacchifunction have the same meaning as in
11143051d27SRobert Mustacchi.Xr fstat 2 ,
11243051d27SRobert Mustacchisee
11343051d27SRobert Mustacchi.Xr fstat 2
11443051d27SRobert Mustacchifor the full description and purpose of the
11543051d27SRobert Mustacchi.Sy fstat
11643051d27SRobert Mustacchisystem call and its arguments.
11743051d27SRobert Mustacchi.Pp
11843051d27SRobert MustacchiThe arguments
11943051d27SRobert Mustacchi.Fa path ,
12043051d27SRobert Mustacchiand
12143051d27SRobert Mustacchi.Fa buf
12243051d27SRobert Mustacchito the
12343051d27SRobert Mustacchi.Fn pr_lstat
12443051d27SRobert Mustacchifunction have the same meaning as in
12543051d27SRobert Mustacchi.Xr lstat 2 ,
12643051d27SRobert Mustacchisee
12743051d27SRobert Mustacchi.Xr lstat 2
12843051d27SRobert Mustacchifor the full description and purpose of the
12943051d27SRobert Mustacchi.Sy lstat
13043051d27SRobert Mustacchisystem call and its arguments.
13143051d27SRobert Mustacchi.Pp
13243051d27SRobert MustacchiThe
13343051d27SRobert Mustacchi.Fn pr_stat ,
13443051d27SRobert Mustacchi.Fn pr_lstat ,
13543051d27SRobert Mustacchiand
13643051d27SRobert Mustacchi.Fn pr_fstat
13772d3dbb9SYuri Pankovfunctions only work on active processes.
13872d3dbb9SYuri PankovProcess handles that correspond to core files, zombie processes, or ELF objects
13972d3dbb9SYuri Pankovdo not support system call injection.
14043051d27SRobert Mustacchi.Pp
14143051d27SRobert MustacchiThe
14243051d27SRobert Mustacchi.Fn pr_stat64 ,
14343051d27SRobert Mustacchi.Fn pr_fstat64 ,
14443051d27SRobert Mustacchiand
14543051d27SRobert Mustacchi.Fn pr_lstat64
14643051d27SRobert Mustacchifunctions are equivalent to
14743051d27SRobert Mustacchi.Fn pr_stat ,
14843051d27SRobert Mustacchi.Fn pr_fstat ,
14943051d27SRobert Mustacchiand
15043051d27SRobert Mustacchi.Fn pr_lstat
15172d3dbb9SYuri Pankovrespectively; however, rather than having the stat information be subject to the
15272d3dbb9SYuri Pankovdata model of the target process, they always provide 64-bit stat information.
15372d3dbb9SYuri PankovSee
154bbf21555SRichard Lowe.Xr lf64 7
15543051d27SRobert Mustacchifor more information.
15643051d27SRobert Mustacchi.Sh RETURN VALUES
15743051d27SRobert MustacchiUpon successful completion, the
15843051d27SRobert Mustacchi.Fn pr_stat
15943051d27SRobert Mustacchifunction's return value is that described in
16043051d27SRobert Mustacchi.Xr stat 2 .
16143051d27SRobert MustacchiOtherwise,
16243051d27SRobert Mustacchi.Sy -1
16343051d27SRobert Mustacchiis returned and
16443051d27SRobert Mustacchi.Sy errno
16543051d27SRobert Mustacchiis set to
16643051d27SRobert Mustacchi.Er ENOSYS
16743051d27SRobert Mustacchito indicate that the system call could not be injected.
16843051d27SRobert Mustacchi.Sh ERRORS
16943051d27SRobert MustacchiFor the full list of errors see the
17043051d27SRobert Mustacchi.Sy ERRORS
17143051d27SRobert Mustacchisection in
17243051d27SRobert Mustacchi.Xr stat 2 .
17343051d27SRobert Mustacchi.Pp
17443051d27SRobert MustacchiThe
17543051d27SRobert Mustacchi.Fn pr_stat
17643051d27SRobert Mustacchifunction will fail if:
17743051d27SRobert Mustacchi.Bl -tag -width Er
17843051d27SRobert Mustacchi.It Er ENOSYS
17943051d27SRobert MustacchiAn error occurred while trying to invoke the agent LWP and inject a
18043051d27SRobert Mustacchisystem call in the process handle
18143051d27SRobert Mustacchi.Fa P
18243051d27SRobert Mustacchior the process handle
18343051d27SRobert Mustacchi.Fa P
18443051d27SRobert Mustacchidoes not support system call injection.
18543051d27SRobert Mustacchi.El
18643051d27SRobert Mustacchi.Sh INTERFACE STABILITY
18743051d27SRobert Mustacchi.Sy Uncommitted
18843051d27SRobert Mustacchi.Sh MT-LEVEL
18943051d27SRobert MustacchiSee
19043051d27SRobert Mustacchi.Sy LOCKING
19143051d27SRobert Mustacchiin
19243051d27SRobert Mustacchi.Xr libproc 3LIB .
19343051d27SRobert Mustacchi.Sh SEE ALSO
19443051d27SRobert Mustacchi.Xr stat 2 ,
19543051d27SRobert Mustacchi.Xr libproc 3LIB ,
196bbf21555SRichard Lowe.Xr proc 5 ,
197bbf21555SRichard Lowe.Xr lf64 7
198