From: ian Date: Mon, 31 Aug 1998 14:32:49 +0000 (+0000) Subject: Fix coredump bug. X-Git-Tag: debian_version_1_1_5 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=authbind.git;a=commitdiff_plain;h=76d3668c8bd60ab6ee79687940d06485fe4d4930;hp=cee28dccdc57922072a74c9c2e119dd43ef2815b Fix coredump bug. --- diff --git a/debian/changelog b/debian/changelog index e7453ed..457d95a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +authbind (1.1.5) unstable; urgency=low + + * Fix coredump bug ! + + -- Ian Jackson Mon, 31 Aug 1998 15:32:44 +0100 + authbind (1.1.4) unstable; urgency=low * Allow bind() to port 0 ! diff --git a/libauthbind.c b/libauthbind.c index c8f3422..dc004a3 100644 --- a/libauthbind.c +++ b/libauthbind.c @@ -40,13 +40,11 @@ typedef int bindfn_type(int fd, const struct sockaddr *addr, socklen_t addrlen); #define STDERRSTR_CONST(m) write(2,m,sizeof(m)-1) #define STDERRSTR_STRING(m) write(2,m,strlen(m)) -static int find_any(const char *name, anyfn_type **keep) { +static anyfn_type *find_any(const char *name) { static const char *dlerr; anyfn_type *kv; - if (*keep) return 0; - kv= dlsym(RTLD_NEXT,name); - if (kv) { *keep= kv; return 0; } + kv= dlsym(RTLD_NEXT,name); if (kv) return kv; dlerr= dlerror(); if (!dlerr) dlerr= "dlsym() failed for no reason"; STDERRSTR_CONST("libauthbind: error finding original version of "); STDERRSTR_STRING(name); @@ -54,14 +52,14 @@ static int find_any(const char *name, anyfn_type **keep) { STDERRSTR_STRING(dlerr); STDERRSTR_STRING("\n"); errno= ENOSYS; - return -1; + return 0; } static bindfn_type find_bind, *old_bind= find_bind; int find_bind(int fd, const struct sockaddr *addr, socklen_t addrlen) { anyfn_type *anyfn; - if (find_any("bind",&anyfn)) return -1; + anyfn= find_any("bind"); if (!anyfn) return -1; old_bind= (bindfn_type*)anyfn; return old_bind(fd,addr,addrlen); }