diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2019-07-14 03:23:13 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2019-07-14 03:23:13 +0000 |
commit | 25aeea6b92229b78dfb0bf51a726bd0699a01b3c (patch) | |
tree | 885f58a6e41f260aa98fdd6b3ce7645408d5d0c4 /libexec/ld.so/amd64 | |
parent | 327752eecb3e454051f3854d16d5859f3aac2da0 (diff) |
ld.so's $ORIGIN handling when argv[0] is a relative path was broken by
the change in __getcwd(2)'s return value. Fix it by switching to the
__realpath(2) syscall, eliminating the ld.so copy of realpath().
problem caught by regress and noted by bluhm@
ok deraadt@
Diffstat (limited to 'libexec/ld.so/amd64')
-rw-r--r-- | libexec/ld.so/amd64/syscall.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/libexec/ld.so/amd64/syscall.h b/libexec/ld.so/amd64/syscall.h index 2bf4aabcf94..9c5c1b6487e 100644 --- a/libexec/ld.so/amd64/syscall.h +++ b/libexec/ld.so/amd64/syscall.h @@ -1,4 +1,4 @@ -/* $OpenBSD: syscall.h,v 1.27 2018/07/09 10:12:14 deraadt Exp $ */ +/* $OpenBSD: syscall.h,v 1.28 2019/07/14 03:23:12 guenther Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -42,7 +42,6 @@ int _dl_close(int); __dead void _dl_exit(int); int _dl_fstat(int, struct stat *); -int _dl___getcwd(char *, size_t); ssize_t _dl_getdents(int, char *, size_t); int _dl_issetugid(void); int _dl_getthrid(void); @@ -50,7 +49,6 @@ int _dl_mprotect(const void *, size_t, int); int _dl_munmap(const void *, size_t); int _dl_open(const char *, int); ssize_t _dl_read(int, const char *, size_t); -ssize_t _dl_readlink(const char *, char *, size_t); int _dl_pledge(const char *, const char **); long _dl___syscall(quad_t, ...); int _dl_sysctl(const int *, u_int, void *, size_t *, void *, size_t); |