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