pkgsrc/misc/dync/patches/patch-ab
kristerw 28952648de Make this package build after the mk/wrapper changes.
Make sure that a temporary library name buffer is nul-terminated.
PKGREVISION++.
2004-10-08 23:33:35 +00:00

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 */