diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/ncftp/APKBUILD | 14 | ||||
-rw-r--r-- | main/ncftp/remove-alloca-use.patch | 130 |
2 files changed, 4 insertions, 140 deletions
diff --git a/main/ncftp/APKBUILD b/main/ncftp/APKBUILD index 4e58fca021..4a1f21a967 100644 --- a/main/ncftp/APKBUILD +++ b/main/ncftp/APKBUILD @@ -1,14 +1,13 @@ # Maintainer: Carlo Landmeter <clandmeter@gmail.com> pkgname=ncftp pkgver=3.2.6 -pkgrel=0 +pkgrel=1 pkgdesc="A set of free application programs implementing FTP" url="http://www.ncftp.com/" -arch="" +arch="all" license="custom" makedepends="ncurses-dev" -source="ftp://ftp.$pkgname.com/$pkgname/$pkgname-$pkgver-src.tar.xz - remove-alloca-use.patch" +source="http://dev.alpinelinux.org/archive/ncftp/ncftp-$pkgver-src.tar.xz" subpackages="$pkgname-doc $pkgname-bookmarks" builddir="$srcdir/$pkgname-$pkgver" @@ -45,9 +44,4 @@ bookmarks () { "$subpkgdir"/usr/bin/ || return 1 } -md5sums="9e42d4696754ed49e002b8f719f07d92 ncftp-3.2.6-src.tar.xz -d13044a36fbd26473dc60ac8357262f6 remove-alloca-use.patch" -sha256sums="7abd3e8f848f0efb4bb6a4bc5da58a59524d4378fc8d70a52adb0fe1fd00b89d ncftp-3.2.6-src.tar.xz -e2c22fbfe819f726de086098af6aeda9794ec7fabc1e41e65128ba061efceef4 remove-alloca-use.patch" -sha512sums="040db7e2ca2ee78b79d682a951fd98c1e0ee2936b64462259992d70c51241fa50ae06c66b4f40933ad0ab7122f581bbb8ba7cda764dba5f70a1f8c7d3d751199 ncftp-3.2.6-src.tar.xz -6d2256d12b4306f6cddaf47cf38c9cedcd6d37ee2b9c4243de5e661b51d8bc991d632754eef77a778890b0c0458ae59fc9a08f34c6901257bd863695d80c4de0 remove-alloca-use.patch" +sha512sums="8e6091ce2ea1eb463edea322d1b5dde813475fd22096d67f0bfd2f5101ae09747ff25d38816d0b9b1077e6a5a256078361691f816aa2eefa38638aa523b4b382 ncftp-3.2.6-src.tar.xz" diff --git a/main/ncftp/remove-alloca-use.patch b/main/ncftp/remove-alloca-use.patch deleted file mode 100644 index 0ed63e436f..0000000000 --- a/main/ncftp/remove-alloca-use.patch +++ /dev/null @@ -1,130 +0,0 @@ -The alloca() use in sio is incorrect. gethostby*_r will make the hostent -contain pointers to the submitted area, but when the function returns the -alloca() allocated area is freed. Always use the supplied buffer. - -diff -ru ncftp-3.2.5.orig/sio/DNSUtil.c ncftp-3.2.5/sio/DNSUtil.c ---- ncftp-3.2.5.orig/sio/DNSUtil.c 2009-10-24 02:31:23.000000000 +0300 -+++ ncftp-3.2.5/sio/DNSUtil.c 2016-03-22 16:17:36.809816988 +0200 -@@ -50,6 +50,13 @@ - errno = ENOENT; - break; - } -+#elif defined(HAVE_GETHOSTBYNAME_R) && defined(LINUX) -+ struct hostent *h; -+ int h_errno_unused = 0, r; -+ memset(hpbuf, 0, hpbufsize); -+ r = gethostbyname_r(name, hp, hpbuf, hpbufsize, &h, &h_errno_unused); -+ if (r == 0 && h != NULL) -+ return (0); - #elif defined(HAVE_GETHOSTBYNAME_R) && (defined(SOLARIS) || defined(IRIX) || defined(BSDOS)) - struct hostent *h; - int h_errno_unused = 0; -@@ -57,60 +64,6 @@ - h = gethostbyname_r(name, hp, hpbuf, hpbufsize, &h_errno_unused); - if (h != NULL) - return (0); --#elif defined(HAVE_GETHOSTBYNAME2_R) && defined(LINUX) && defined(HAVE_ALLOCA) -- char *usehpbuf; -- struct hostent *h; -- int my_h_errno, rc; -- -- usehpbuf = hpbuf; -- forever { -- errno = 0; -- my_h_errno = 0; -- h = NULL; -- memset(usehpbuf, 0, hpbufsize); -- rc = gethostbyname2_r(name, AF_INET, hp, usehpbuf, hpbufsize, &h, &my_h_errno); -- if ((rc == 0) && (h != NULL)) -- return (0); -- if ((rc == ERANGE) || ((rc == -1) && (errno == ERANGE))) { -- hpbufsize *= 2; -- usehpbuf = alloca(hpbufsize); -- if (usehpbuf == NULL) { -- errno = ENOMEM; -- return (-1); -- } -- continue; -- } -- if ((rc == 0) && (my_h_errno != 0)) -- errno = ENOENT; -- break; -- } --#elif defined(HAVE_GETHOSTBYNAME_R) && defined(LINUX) && defined(HAVE_ALLOCA) -- char *usehpbuf; -- struct hostent *h; -- int my_h_errno, rc; -- -- usehpbuf = hpbuf; -- forever { -- errno = 0; -- my_h_errno = 0; -- h = NULL; -- memset(usehpbuf, 0, hpbufsize); -- rc = gethostbyname_r(name, hp, usehpbuf, hpbufsize, &h, &my_h_errno); -- if ((rc == 0) && (h != NULL)) -- return (0); -- if ((rc == ERANGE) || ((rc == -1) && (errno == ERANGE))) { -- hpbufsize *= 2; -- usehpbuf = alloca(hpbufsize); -- if (usehpbuf == NULL) { -- errno = ENOMEM; -- return (-1); -- } -- continue; -- } -- if ((rc == 0) && (my_h_errno != 0)) -- errno = ENOENT; -- break; -- } - #elif defined(HAVE_GETHOSTBYNAME_R) && defined(AIX) - struct hostent_data hed; - memset(hpbuf, 0, hpbufsize); -@@ -152,6 +105,13 @@ - return (-2); - return (0); - } -+#elif defined(HAVE_GETHOSTBYADDR_R) && defined(LINUX) -+ struct hostent *h; -+ int h_errno_unused = 0, r; -+ memset(hpbuf, 0, hpbufsize); -+ r = gethostbyaddr_r((const void *) addr, asize, atype, hp, hpbuf, hpbufsize, &h, &h_errno_unused); -+ if (r == 0 && h != NULL) -+ return (0); - #elif defined(HAVE_GETHOSTBYADDR_R) && (defined(SOLARIS) || defined(IRIX) || defined(BSDOS)) - struct hostent *h; - int h_errno_unused = 0; -@@ -159,33 +119,6 @@ - h = gethostbyaddr_r((gethost_addrptr_t) addr, asize, atype, hp, hpbuf, hpbufsize, &h_errno_unused); - if (h != NULL) - return (0); --#elif defined(HAVE_GETHOSTBYADDR_R) && defined(LINUX) && defined(HAVE_ALLOCA) -- char *usehpbuf; -- struct hostent *h; -- int my_h_errno, rc; -- -- usehpbuf = hpbuf; -- forever { -- errno = 0; -- my_h_errno = 0; -- h = NULL; -- memset(usehpbuf, 0, hpbufsize); -- rc = gethostbyaddr_r((gethost_addrptr_t) addr, asize, atype, hp, usehpbuf, hpbufsize, &h, &my_h_errno); -- if ((rc == 0) && (h != NULL)) -- return (0); -- if ((rc == ERANGE) || ((rc == -1) && (errno == ERANGE))) { -- hpbufsize *= 2; -- usehpbuf = alloca(hpbufsize); -- if (usehpbuf == NULL) { -- errno = ENOMEM; -- return (-1); -- } -- continue; -- } -- if ((rc == 0) && (my_h_errno != 0)) -- errno = ENOENT; -- break; -- } - #elif defined(HAVE_GETHOSTBYADDR_R) && defined(AIX) - struct hostent_data hed; - memset(hpbuf, 0, hpbufsize); |