diff options
author | Timo Teräs <timo.teras@iki.fi> | 2016-01-08 09:18:11 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2016-01-08 09:21:58 +0200 |
commit | 8a4ccf53a605414546a73d39dda24fe95c1bc1b2 (patch) | |
tree | 9dfd741e819a102716237fab07aa65b07a6ce4ba /main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch | |
parent | 7d84a0410e406fd7edd9f82c0c83a39ad222201e (diff) | |
download | aports-8a4ccf53a605414546a73d39dda24fe95c1bc1b2.tar.bz2 aports-8a4ccf53a605414546a73d39dda24fe95c1bc1b2.tar.xz |
main/musl: cherry-pick upstream fixes and improvements
fixes #4621
Diffstat (limited to 'main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch')
-rw-r--r-- | main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch b/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch new file mode 100644 index 0000000000..a6ea0ad753 --- /dev/null +++ b/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch @@ -0,0 +1,45 @@ +From 3abb094d19ca4c7c4adcf373d971fb5aa05c5252 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy <nsz@port70.net> +Date: Sat, 5 Dec 2015 21:53:59 +0100 +Subject: [PATCH] fix tsearch, tfind, tdelete to handle null pointer input + +POSIX specifies the behaviour for null rootp input, but it +was not implemented correctly. +--- + src/search/tsearch_avl.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/search/tsearch_avl.c b/src/search/tsearch_avl.c +index e4fb131..57194c8 100644 +--- a/src/search/tsearch_avl.c ++++ b/src/search/tsearch_avl.c +@@ -151,6 +151,8 @@ static struct node *remove(struct node **n, const void *k, + void *tdelete(const void *restrict key, void **restrict rootp, + int(*compar)(const void *, const void *)) + { ++ if (!rootp) ++ return 0; + struct node *n = *rootp; + struct node *ret; + /* last argument is arbitrary non-null pointer +@@ -163,6 +165,8 @@ void *tdelete(const void *restrict key, void **restrict rootp, + void *tfind(const void *key, void *const *rootp, + int(*compar)(const void *, const void *)) + { ++ if (!rootp) ++ return 0; + return find(*rootp, key, compar); + } + +@@ -171,6 +175,8 @@ void *tsearch(const void *key, void **rootp, + { + struct node *update; + struct node *ret; ++ if (!rootp) ++ return 0; + update = insert(*rootp, key, compar, &ret); + if (update) + *rootp = update; +-- +2.7.0 + |