Version bumped. Closes 47532
authorMartin Holzer <mholzer@gentoo.org>
Tue, 13 Apr 2004 20:14:30 +0000 (20:14 +0000)
committerMartin Holzer <mholzer@gentoo.org>
Tue, 13 Apr 2004 20:14:30 +0000 (20:14 +0000)
net-misc/whois/ChangeLog
net-misc/whois/Manifest
net-misc/whois/files/digest-whois-4.6.13 [new file with mode: 0644]
net-misc/whois/files/whois-4.6.13-gentoo-security.patch [new file with mode: 0644]
net-misc/whois/whois-4.6.13.ebuild [new file with mode: 0644]

index e374550bb3bdfe604ab36bed48033e9a25e61a6d..5b48ac7a4d6dcd4fcb15e4e7245e0d96fbbec16e 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for net-misc/whois
 # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/ChangeLog,v 1.32 2004/01/15 05:36:05 avenj Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/ChangeLog,v 1.33 2004/04/13 20:14:30 mholzer Exp $
+
+*whois-4.6.13 (13 Apr 2004)
+
+  13 Apr 2004; Martin Holzer <mholzer@gentoo.org> whois-4.6.13.ebuild,
+  files/whois-4.6.13-gentoo-security.patch:
+  Version bumped. Closes 47532
 
   15 Jan 2004; Jon Portnoy <avenj@gentoo.org> whois-4.6.9.ebuild :
   Stable on AMD64.
index e1a146a1a477c9522bff698497e18f2be35eade2..f2a8bba22008e732512240fae7bd792aea74fb2d 100644 (file)
@@ -1,7 +1,10 @@
-MD5 f7401bbeab53b5ad7319b16e365ce19d ChangeLog 5382
+MD5 e5f4ae3165a819924d2f9302737dfc94 ChangeLog 5560
 MD5 040bc432c18861f9c840df3fbeb43126 whois-4.6.6-r2.ebuild 1173
 MD5 b00515de0728029b34d7e96989d025eb whois-4.6.9.ebuild 1195
+MD5 7a971457962272662c23fe8f19b8c314 whois-4.6.13.ebuild 1196
 MD5 9d6a7c447cdafb5e2b97f86d5c6e9789 files/digest-whois-4.6.6-r2 62
-MD5 5b0f12c560d041d865109694432ffd93 files/whois-4.6.6-gentoo-security-2.patch 5366
 MD5 002b59068a31c05cfe61df2c31d655e7 files/digest-whois-4.6.9 62
+MD5 5b0f12c560d041d865109694432ffd93 files/whois-4.6.6-gentoo-security-2.patch 5366
 MD5 5963b760548bb1f580ee3ac53ac1eb19 files/whois-4.6.9-gentoo-security.patch 4712
+MD5 405e144ea2a2c14c0b066e42461ee8f4 files/digest-whois-4.6.13 63
+MD5 fbeb270cb2d2f8fbd313166116740f8b files/whois-4.6.13-gentoo-security.patch 4065
diff --git a/net-misc/whois/files/digest-whois-4.6.13 b/net-misc/whois/files/digest-whois-4.6.13
new file mode 100644 (file)
index 0000000..31f5104
--- /dev/null
@@ -0,0 +1 @@
+MD5 66068605f636ce79a017f1bc770251a3 whois_4.6.13.tar.gz 50400
diff --git a/net-misc/whois/files/whois-4.6.13-gentoo-security.patch b/net-misc/whois/files/whois-4.6.13-gentoo-security.patch
new file mode 100644 (file)
index 0000000..2140cc5
--- /dev/null
@@ -0,0 +1,139 @@
+--- whois.c.org        2004-04-13 21:31:16.000000000 +0200
++++ whois.c    2004-04-13 21:49:57.000000000 +0200
+@@ -76,7 +76,7 @@
+       /* RIPE flags */
+       if (strchr(ripeflags, ch)) {
+           for (p = fstring; *p; p++);
+-          sprintf(p--, "-%c ", ch);
++          snprintf(p--, sizeof(fstring), "-%c ", ch);
+           continue;
+       }
+       if (strchr(ripeflagsp, ch)) {
+@@ -121,7 +121,7 @@
+       usage();
+     /* On some systems realloc only works on non-NULL buffers */
+-    qstring = malloc(64);
++    qstring = xmalloc(64);
+     *qstring = '\0';
+     /* parse other parameters, if any */
+@@ -130,11 +130,11 @@
+       while (1) {
+           qslen += strlen(*argv) + 1 + 1;
+-          qstring = realloc(qstring, qslen);
+-          strcat(qstring, *argv++);
++          qstring = xrealloc(qstring, qslen);
++          strncat(qstring, *argv++, qslen-1);
+           if (argc == 1)
+               break;
+-          strcat(qstring, " ");
++          strncat(qstring, " ", qslen);
+           argc--;
+       }
+     }
+@@ -422,8 +422,12 @@
+     char *buf;
+     int i, isripe = 0;
++      /* buflen was always 0 in original patch and buf was allocated
++      twice /Aye */
+     /* 64 bytes reserved for server-specific flags added later */
+-    buf = malloc(strlen(flags) + strlen(query) + strlen(client_tag) + 64);
++    int buflen = strlen(flags) + strlen(query) + strlen(client_tag) + 64;
++    buf = xmalloc(buflen);
++
+     *buf = '\0';
+     for (i = 0; ripe_servers[i]; i++)
+       if (strcmp(server, ripe_servers[i]) == 0) {
+@@ -445,7 +449,7 @@
+     if (*flags) {
+       if (!isripe && strcmp(server, "whois.corenic.net") != 0)
+           puts(_("Warning: RIPE flags used with a traditional server."));
+-      strcat(buf, flags);
++      strncat(buf, flags, buflen);
+     }
+     /* why, oh why DENIC had to make whois "user friendly"?
+@@ -453,20 +457,20 @@
+      */
+     if (isripe && strcmp(server, "whois.denic.de") == 0 && domcmp(query, ".de")
+           && !strchr(query, ' '))
+-      sprintf(buf, "-T dn,ace -C US-ASCII %s", query);
++      snprintf(buf, buflen, "-T dn,ace -C US-ASCII %s", query);
+     else if (!isripe && (strcmp(server, "whois.nic.mil") == 0 ||
+           strcmp(server, "whois.nic.ad.jp") == 0) &&
+           strncasecmp(query, "AS", 2) == 0 && isasciidigit(query[2]))
+       /* FIXME: /e is not applied to .JP ASN */
+-      sprintf(buf, "AS %s", query + 2);       /* fix query for DDN */
++      snprintf(buf, buflen, "AS %s", query + 2);      /* fix query for DDN */
+     else if (!isripe && strcmp(server, "whois.nic.ad.jp") == 0) {
+       char *lang = getenv("LANG");    /* not a perfect check, but... */
+       if (!lang || (strncmp(lang, "ja", 2) != 0))
+-          sprintf(buf, "%s/e", query);        /* ask for english text */
++          snprintf(buf, buflen, "%s/e", query);       /* ask for english text */
+       else
+-          strcat(buf, query);
++          strncat(buf, query, buflen);
+     } else
+-      strcat(buf, query);
++      strncat(buf, query, buflen);
+     return buf;
+ }
+@@ -581,7 +585,7 @@
+     int hide = hide_discl;
+     int state = 0;
+-    temp = malloc(strlen(query) + 1 + 2 + 1);
++    temp = xmalloc(strlen(query) + 1 + 2 + 1);
+     *temp = '=';
+     strcpy(temp + 1, query);
+     strcat(temp, "\r\n");
+@@ -599,7 +603,7 @@
+           for (p = buf; *p != ':'; p++);      /* skip until colon */
+           for (p++; *p == ' '; p++);          /* skip colon and spaces */
+-          ret = malloc(strlen(p) + 1);
++          ret = xmalloc(strlen(p) + 1);
+           for (q = ret; *p != '\n' && *p != '\r' && *p != ' '; *q++ = *p++)
+               ; /*copy data*/
+           *q = '\0';
+@@ -847,6 +851,25 @@
+     exit(0);
+ }
++/* Memory allocation routines */
++void *xmalloc(size_t size)
++{
++      void *ptr;
++
++      if ((ptr = malloc(size)) == NULL)
++              err_sys("malloc");
++
++      return ptr;
++}
++
++void *xrealloc(void *ptr, size_t size)
++{
++      if ((ptr = realloc(ptr, size)) == NULL)
++              err_sys("realloc");
++
++      return ptr;
++}
++
+ /* Error routines */
+ void err_sys(const char *fmt, ...)
+--- whois.h.org        2004-04-13 21:50:35.000000000 +0200
++++ whois.h    2004-04-13 21:51:00.000000000 +0200
+@@ -32,6 +32,8 @@
+ void split_server_port(const char *const input, const char **server,
+                      const char **port);
++void *xmalloc(size_t);
++void *xrealloc(void *, size_t);
+ void err_quit(const char *,...);
+ void err_sys(const char *,...);
diff --git a/net-misc/whois/whois-4.6.13.ebuild b/net-misc/whois/whois-4.6.13.ebuild
new file mode 100644 (file)
index 0000000..2816fda
--- /dev/null
@@ -0,0 +1,51 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/whois-4.6.13.ebuild,v 1.1 2004/04/13 20:14:30 mholzer Exp $
+
+IUSE="nls"
+MY_P=${P/-/_}
+DESCRIPTION="improved Whois Client"
+SRC_URI="http://www.linux.it/~md/software/${MY_P}.tar.gz"
+HOMEPAGE="http://www.linux.it/~md/software/"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~mips hppa ~ia64 ~alpha ~amd64"
+
+DEPEND=">=sys-apps/sed-4
+       >=dev-lang/perl-5"
+RDEPEND="virtual/glibc"
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       sed -i -e "s/-O2/$CFLAGS/" Makefile
+
+       use nls && ( \
+               cd po
+               sed -i -e "s:/usr/bin/install:install:" Makefile
+       ) || ( \
+               sed -i -e "s:cd po.*::" Makefile
+       )
+
+       epatch ${FILESDIR}/${P}-gentoo-security.patch || die
+}
+
+src_compile() {
+       make || die
+       make mkpasswd || die
+}
+
+src_install() {
+       dodir /usr/bin
+       dodir /usr/share/man/man1
+       use nls && dodir /usr/share/locale
+       make BASEDIR=${D} prefix=/usr mandir=/usr/share/man install || die
+
+       dobin mkpasswd
+       doman mkpasswd.1
+       dodoc README whois.conf debian/changelog debian/copyright
+
+       einfo ""
+       einfo "The example whois.conf is located in /usr/doc/${P}"
+       einfo ""
+}