X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Date: Wed, 16 Sep 2015 20:56:54 +0300 From: "Eli Zaretskii (eliz AT gnu DOT org) [via djgpp AT delorie DOT com]" Subject: Re: dlopen.c: make sure filename is not NULL and not empty In-reply-to: X-012-Sender: halo1 AT inter DOT net DOT il To: djgpp AT delorie DOT com Message-id: <83d1xi6ye1.fsf@gnu.org> References: Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > Date: Wed, 16 Sep 2015 10:14:40 -0700 (PDT) > From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp AT delorie DOT com]" > > On Wednesday, September 16, 2015 at 2:39:19 PM UTC+2, Ozkan Sezer (sezeroz AT gmail DOT com) [via djgpp AT delorie DOT com] wrote: > > If there are no objections, I want to apply the following > > patch to both HEAD and to v2_05_1. dlopen(NULL,mode) is > > supported by glibc but not by djgpp, and such a call left > > unchecked will result in Bad Things (TM) to happen. > > > > Index: dlopen.c > > =================================================================== > > RCS file: /cvs/djgpp/djgpp/src/libc/dxe/dlopen.c,v > > retrieving revision 1.9 > > diff -u -p -r1.9 dlopen.c > > --- dlopen.c 21 Aug 2015 18:10:28 -0000 1.9 > > +++ dlopen.c 16 Sep 2015 12:02:07 -0000 > > @@ -119,6 +119,11 @@ void *dlopen(const char *filename, int m > > _dl_unresolved_count = 0; > > errno = 0; > > > > + if (!filename || !*filename) { > > + errno = EINVAL; > > + return NULL; > > + } > > + > > /* Find the dynamic module along the LD_LIBRARY_PATH */ > > if (!ACCESS(filename)) > > { > > > Looks ok to me but my man page tells something like this: > "If filename is NULL, then the returned handle is for the main program." > What shall this imply for DJGPP? This feature is for when the function is already statically linked into the main program. Can we support this in DJGPP? If not, we should return ENOSYS or some such.