From 59911135f81a147796fdbb317e2b9838a3f89254 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Thu, 11 Mar 2021 02:56:14 -0700 Subject: [PATCH 1/3] stdlib: add canonicalize_file_name --- libgcompat/stdlib.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libgcompat/stdlib.c b/libgcompat/stdlib.c index 82f7602..8c0321b 100644 --- a/libgcompat/stdlib.c +++ b/libgcompat/stdlib.c @@ -127,3 +127,11 @@ unsigned long long strtouq(const char *nptr, char **endptr, int base) { return strtoull(nptr, endptr, base); } + +/** + * Canonicalize a path, wraps realpath(3). + */ +char *canonicalize_file_name(const char *path) +{ + return realpath(path, NULL); +} \ No newline at end of file -- 2.30.2 From 4e2400a6693f80f15fa66c3a1295a05979f3710d Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Thu, 11 Mar 2021 03:05:27 -0700 Subject: [PATCH 2/3] resolv: add res_nsearch --- libgcompat/resolv.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libgcompat/resolv.c b/libgcompat/resolv.c index 0b81d0c..ea6eae2 100644 --- a/libgcompat/resolv.c +++ b/libgcompat/resolv.c @@ -46,3 +46,14 @@ int __res_search(const char *dname, int class, int type, unsigned char *answer, { return res_search(dname, class, type, answer, anslen); } + +int __res_nsearch(res_state statp, const char *dname, int class, + int type, unsigned char *answer, int anslen) +{ + if (statp == NULL) { + return -1; + } + + return res_search(dname, class, type, answer, anslen); +} +weak_alias(__res_nsearch, res_nsearch); -- 2.30.2 From c1762879097cb75ec8bfb535881382bb382093b5 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Thu, 11 Mar 2021 03:12:12 -0700 Subject: [PATCH 3/3] resolv: add __dn_skipname and __dn_expand --- libgcompat/resolv.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libgcompat/resolv.c b/libgcompat/resolv.c index ea6eae2..7bf92be 100644 --- a/libgcompat/resolv.c +++ b/libgcompat/resolv.c @@ -57,3 +57,13 @@ int __res_nsearch(res_state statp, const char *dname, int class, return res_search(dname, class, type, answer, anslen); } weak_alias(__res_nsearch, res_nsearch); + +int __dn_skipname(const unsigned char *comp_dn, const unsigned char *eom) +{ + return dn_skipname(comp_dn, eom); +} + +int __dn_expand(const unsigned char *base, const unsigned char *end, const unsigned char *src, char *dest, int space) +{ + return dn_expand(base, end, src, dest, space); +} \ No newline at end of file -- 2.30.2