From 8fea30a5719946c9164352501caaa2d057e1dbc6 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Tue, 6 Jan 2015 12:12:49 +0100 Subject: 34122: module: allow NULL third argument as intended Found by Coverity. --- Src/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Src/module.c') diff --git a/Src/module.c b/Src/module.c index 9e8b3cc2a..bcc0ba833 100644 --- a/Src/module.c +++ b/Src/module.c @@ -3367,7 +3367,7 @@ mod_export int handlefeatures(Module m, Features f, int **enables) { if (!enables || *enables) - return setfeatureenables(m, f, *enables); + return setfeatureenables(m, f, enables ? *enables : NULL); *enables = getfeatureenables(m, f); return 0; } -- cgit v1.2.3 From bac2bbd05893dff4be88c7914116374c0f27932d Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 25 Jan 2015 18:28:50 +0100 Subject: 34382: Handle NULL return from dlerror() more gracefully --- ChangeLog | 5 +++++ Src/module.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'Src/module.c') diff --git a/ChangeLog b/ChangeLog index fc6264497..ff7c100f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-01-27 Mikael Magnusson + + * 34382: Src/module.c: Handle NULL return from dlerror() more + gracefully + 2015-01-26 Peter Stephenson * 34402: Src/Modules/db_gdbm.c: make unsetting a tied gdbm diff --git a/Src/module.c b/Src/module.c index bcc0ba833..97a4869cd 100644 --- a/Src/module.c +++ b/Src/module.c @@ -1597,8 +1597,9 @@ do_load_module(char const *name, int silent) ret = try_load_module(name); if (!ret && !silent) { #ifdef HAVE_DLERROR + char *errstr = dlerror(); zwarn("failed to load module `%s': %s", name, - metafy(dlerror(), -1, META_USEHEAP)); + errstr ? metafy(errstr, -1, META_USEHEAP) : "empty module path"); #else zwarn("failed to load module: %s", name); #endif -- cgit v1.2.3 From cae0be3af69f32eee05028ca2ee0c4b6997171af Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 25 Jan 2015 19:20:08 +0100 Subject: 34387: Avoid loading the main zsh binary as a module --- ChangeLog | 3 +++ Src/module.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'Src/module.c') diff --git a/ChangeLog b/ChangeLog index ff7c100f8..5939ea141 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ * 34382: Src/module.c: Handle NULL return from dlerror() more gracefully + * 34387: Src/module.c: Avoid loading the main zsh binary as + a module + 2015-01-26 Peter Stephenson * 34402: Src/Modules/db_gdbm.c: make unsetting a tied gdbm diff --git a/Src/module.c b/Src/module.c index 97a4869cd..7dd47016c 100644 --- a/Src/module.c +++ b/Src/module.c @@ -1577,7 +1577,9 @@ try_load_module(char const *name) if (l + (**pp ? strlen(*pp) : 1) > PATH_MAX) continue; sprintf(buf, "%s/%s.%s", **pp ? *pp : ".", name, DL_EXT); - ret = dlopen(unmeta(buf), RTLD_LAZY | RTLD_GLOBAL); + unmetafy(buf, NULL); + if (*buf) /* dlopen(NULL) returns a handle to the main binary */ + ret = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL); } return ret; -- cgit v1.2.3 From df7a657b10df436e88a4c293cdfa5c7b156fba72 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Thu, 19 Feb 2015 08:26:03 -0800 Subject: 34568: use META_HEAPDUP when passing dlerror() string to metafy() --- ChangeLog | 5 +++++ Src/module.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'Src/module.c') diff --git a/ChangeLog b/ChangeLog index 26a10147a..c4ff0223e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-02-19 Barton E. Schaefer + + * 34568: Src/Module.c: use META_HEAPDUP when passing dlerror() + string to metafy() + 2015-02-19 Peter Stephenson * unposted: Config/version.mk: Mikael says it's 2015, diff --git a/Src/module.c b/Src/module.c index 7dd47016c..368254c29 100644 --- a/Src/module.c +++ b/Src/module.c @@ -1601,7 +1601,7 @@ do_load_module(char const *name, int silent) #ifdef HAVE_DLERROR char *errstr = dlerror(); zwarn("failed to load module `%s': %s", name, - errstr ? metafy(errstr, -1, META_USEHEAP) : "empty module path"); + errstr ? metafy(errstr, -1, META_HEAPDUP) : "empty module path"); #else zwarn("failed to load module: %s", name); #endif -- cgit v1.2.3