28952648de
Make sure that a temporary library name buffer is nul-terminated. PKGREVISION++.
42 lines
1.3 KiB
Text
42 lines
1.3 KiB
Text
$NetBSD: patch-ab,v 1.2 2004/10/08 23:33:35 kristerw Exp $
|
|
|
|
--- dync.c.orig Thu Aug 13 17:21:13 1998
|
|
+++ dync.c Sat Oct 9 01:21:37 2004
|
|
@@ -147,7 +147,7 @@
|
|
{
|
|
char cmd[MaxCmdLen];
|
|
|
|
- return (asystem(cmd, sizeof(cmd), "%s %s | %s ELF", FILE_CMD, prog, GREP_CMD) == 0);
|
|
+ return (asystem(cmd, sizeof(cmd), "%s %s | %s ELF > /dev/null 2>&1", FILE_CMD, prog, GREP_CMD) == 0);
|
|
}
|
|
|
|
/* print usage message and die */
|
|
@@ -166,8 +166,9 @@
|
|
main(int argc, char **argv)
|
|
{
|
|
char mainname[MaxFileNameLen];
|
|
- char basename[MaxFileNameLen];
|
|
+ char basename[MaxFileNameLen] = {0, };
|
|
char libname[MaxFileNameLen];
|
|
+ char fulllibname[MaxFileNameLen];
|
|
char file[MaxFileNameLen];
|
|
char cflags[MaxCmdLen];
|
|
char cmd[MaxCmdLen];
|
|
@@ -261,9 +262,15 @@
|
|
}
|
|
}
|
|
|
|
+ /* create absolute path to the shared lib */
|
|
+ if (getcwd(fulllibname, sizeof(fulllibname)) == NULL)
|
|
+ die("can't get working directory pathname");
|
|
+ strncat(fulllibname, "/", sizeof(fulllibname) - 1);
|
|
+ strncat(fulllibname, libname, sizeof(fulllibname) - 1);
|
|
+
|
|
/* get a handle on the shared lib */
|
|
- if ((handle = dlopen(libname, DL_LAZY)) == (void *) NULL) {
|
|
- die("can't dlopen `%s'", libname);
|
|
+ if ((handle = dlopen(fulllibname, DL_LAZY)) == (void *) NULL) {
|
|
+ die("can't dlopen `%s'", fulllibname);
|
|
}
|
|
|
|
/* remove the object file and shared object lib */
|