Package: hpsockd Version: 0.17 Severity: normal Hi,
hpsockd currently fails to build on Debian GNU/Hurd as it doesn't recognize the OS and then has an unconditional use of MAXPATHLEN.
The attached patch resolves these issues. Thank you, Barry deFreese
diff -Nru hpsockd-0.17/src/Makefile.os hpsockd-0.17+nmu1/src/Makefile.os
--- hpsockd-0.17/src/Makefile.os 2008-06-14 11:06:52.520000000 -0400
+++ hpsockd-0.17+nmu1/src/Makefile.os 2009-06-17 16:02:03.500000000 -0400
@@ -44,3 +44,6 @@
GNU/kFreeBSD.debug: Linux.debug
+GNU: Linux
+
+GNU.debug: Linux.debug
diff -Nru hpsockd-0.17/src/sockd/gram.y hpsockd-0.17+nmu1/src/sockd/gram.y
--- hpsockd-0.17/src/sockd/gram.y 2008-06-14 11:06:52.780000000 -0400
+++ hpsockd-0.17+nmu1/src/sockd/gram.y 2009-06-19 12:19:09.790000000 -0400
@@ -420,9 +420,19 @@
;
hostToken: T_HOST { struct hostent *hp;
- char tmp[MAXPATHLEN];
+ char *tmp = NULL;
+ int tmplen = 16;
register int i;
-
gethostname(tmp,sizeof(tmp));
+ tmp = malloc(tmplen);
+
gethostname(tmp,tmplen);
+ tmp[tmplen-1] = '\0';
+ while (strlen(tmp) >=
tmplen-1)
+ {
+ tmplen *= 2;
+ tmp =
realloc(tmp, tmplen);
+
gethostname(tmp, tmplen);
+ tmp[tmplen-1] =
'\0';
+ }
if
((hp=gethostbyname(tmp))==NULL) {
syslog(LOG_ERR,"No such host");
YYABORT;
@@ -430,6 +440,7 @@
NEWLIST($$,*(int*)hp->h_addr_list[0]);
for (i=1;
hp->h_addr_list[i]; i++)
ADDTOLIST($$,*(int*)hp->h_addr_list[i]);
+ free(tmp);
}
;

