Skip to content

Commit 5de28e0

Browse files
Add missing library function descriptors for rsync analysis (#1948)
* Initial plan * Add missing library function definitions for rsync issue Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com> * Move non-POSIX functions from posix_descs_list to glibc_desc_list Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com> * Move ioctl from linux_kernel_descs_list to linux_userspace_descs_list Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
1 parent 874aa2c commit 5de28e0

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

src/util/library/libraryFunctions.ml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,18 @@ let posix_descs_list: (string * LibraryDesc.t) list = LibraryDsl.[
467467
("getdelim", unknown [drop "lineptr" [r_deep; w_deep]; drop "n" [r; w]; drop "delimiter" []; drop "stream" [r_deep; w_deep]]);
468468
("__getdelim", unknown [drop "lineptr" [r_deep; w_deep]; drop "n" [r; w]; drop "delimiter" []; drop "stream" [r_deep; w_deep]]);
469469
("getwdelim", unknown [drop "lineptr" [r_deep; w_deep]; drop "n" [r; w]; drop "delimiter" []; drop "stream" [r_deep; w_deep]]);
470+
("execlp", unknown (drop "file" [r] :: drop "arg" [r] :: VarArgs (drop' [r])));
471+
("gai_strerror", unknown [drop "errcode" []]);
472+
("getegid", unknown []);
473+
("getgroups", unknown [drop "size" []; drop "list" [w]]);
474+
("initgroups", unknown [drop "user" [r]; drop "group" []]);
475+
("mknod", unknown [drop "pathname" [r]; drop "mode" []; drop "dev" []]);
476+
("openat", unknown (drop "dirfd" [] :: drop "pathname" [r] :: drop "flags" [] :: VarArgs (drop "mode" [])));
477+
("seteuid", unknown [drop "uid" []]);
478+
("setgid", unknown [drop "gid" []]);
479+
("setuid", unknown [drop "uid" []]);
480+
("socketpair", unknown [drop "domain" []; drop "type" []; drop "protocol" []; drop "sv" [w]]);
481+
("tcgetpgrp", unknown [drop "fd" []]);
470482
]
471483
[@@coverage off]
472484

@@ -721,6 +733,17 @@ let glibc_desc_list: (string * LibraryDesc.t) list = LibraryDsl.[
721733
("svc_register", unknown [drop "xprt" [r_deep; w_deep]; drop "prognum" []; drop "versnum" []; drop "dispatch" [r; w; c]; drop "protocol" []]);
722734
("svc_run", unknown []); (* TODO: make new special kind "NoReturn" for this: the following node will be dead (like Abort), but the program doesn't exit (so it shouldn't be Abort) *)
723735
(* RPC library end *)
736+
("getgrouplist", unknown [drop "user" [r]; drop "group" []; drop "groups" [w]; drop "ngroups" [r; w]]);
737+
("innetgr", unknown [drop "netgroup" [r]; drop "host" [r]; drop "user" [r]; drop "domain" [r]]);
738+
("lchmod", unknown [drop "path" [r]; drop "mode" []]);
739+
("lseek64", unknown [drop "fd" []; drop "offset" []; drop "whence" []]);
740+
("lutimes", unknown [drop "filename" [r]; drop "times" [r]]);
741+
("mallinfo2", unknown []);
742+
("strlcat", unknown [drop "dst" [r; w]; drop "src" [r]; drop "dstsize" []]);
743+
("strlcpy", unknown [drop "dst" [w]; drop "src" [r]; drop "dstsize" []]);
744+
("chroot", unknown [drop "path" [r]]);
745+
("getpass", unknown ~attrs:[ThreadUnsafe] [drop "prompt" [r]]);
746+
("setgroups", unknown [drop "size" []; drop "list" [r]]);
724747
]
725748
[@@coverage off]
726749

@@ -766,6 +789,8 @@ let linux_userspace_descs_list: (string * LibraryDesc.t) list = LibraryDsl.[
766789
("__fxstat", unknown [drop "ver" []; drop "fildes" []; drop "stat_buf" [w]]);
767790
("__ctype_b_loc", unknown []);
768791
("_IO_getc", unknown [drop "f" [r_deep; w_deep]]);
792+
("fallocate", unknown [drop "fd" []; drop "mode" []; drop "offset" []; drop "len" []]);
793+
("ioctl", unknown (drop "fd" [] :: drop "request" [] :: VarArgs (drop' [r_deep; w_deep])));
769794
]
770795
[@@coverage off]
771796

@@ -835,7 +860,6 @@ let linux_kernel_descs_list: (string * LibraryDesc.t) list = LibraryDsl.[
835860
("usb_alloc_urb", special [__ "iso_packets" []; drop "mem_flags" []] @@ fun iso_packets -> Malloc MyCFG.unknown_exp);
836861
("usb_submit_urb", unknown [drop "urb" [r_deep; w_deep; c_deep]; drop "mem_flags" []]); (* old comment: first argument is written to but according to specification must not be read from anymore *)
837862
("dev_driver_string", unknown [drop "dev" [r_deep]]);
838-
("ioctl", unknown (drop "fd" [] :: drop "request" [] :: VarArgs (drop' [r_deep; w_deep])));
839863
("idr_pre_get", unknown [drop "idp" [r_deep]; drop "gfp_mask" []]);
840864
("printk", unknown (drop "fmt" [r] :: VarArgs (drop' [r])));
841865
("kmem_cache_create", unknown [drop "name" [r]; drop "size" []; drop "align" []; drop "flags" []; drop "ctor" [r; c]]);

0 commit comments

Comments
 (0)