X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id DF1E4DC0169 for ; Mon, 30 Jun 2014 05:53:30 +0000 (UTC) Received: by mail-pa0-f45.google.com with SMTP id rd3so7985905pab.4 for ; Sun, 29 Jun 2014 22:53:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=VUPKM7+NEkU/Csjl2x2Kx3AR9ALd7m4LfXnQjrSPwcM=; b=KcJlY45i+ZHSPe3kTCVBIrNkm2ogAaHwxwjoPgVi0Ed4nXFQyaTe6FJyZnf+EPdSe9 FM2vDA0epWdnYQ7t5jUH/PdS1Xq/Si6miunDERJHL1NbmTnTFjxx7EYV4iemAqv29QAs NahOT7PpzsO2XiXULpVsKisSrCI12G5C3Oo6RLkTfXX3IbVqhj1rC2ju0i/wBVkCPThW A0qDKF/cS5aNk2kYhCKLh/iAZKN0dZbY55hM0THcR6qHzzv99wLjKzGm5IbZlCYBkmBX vxqNjzQSDMd+Xyf5Y3bTmqhZZYIlS19bGmxTeBzIG4RSvfAsGR0cYxIor1bJ53s9MWdq IR0Q== X-Received: by 10.66.180.34 with SMTP id dl2mr49902530pac.124.1404107609241; Sun, 29 Jun 2014 22:53:29 -0700 (PDT) Received: from localhost.localdomain ([50.0.227.219]) by mx.google.com with ESMTPSA id by1sm25777537pbb.75.2014.06.29.22.53.28 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 29 Jun 2014 22:53:28 -0700 (PDT) From: Isaac Dunham To: alpine-devel@lists.alpinelinux.org Cc: Isaac Dunham Subject: [alpine-devel] [PATCH] main/cups: fix typo, lpd backend Date: Sun, 29 Jun 2014 22:53:44 -0700 Message-Id: <1404107624-6887-1-git-send-email-ibid.ag@gmail.com> X-Mailer: git-send-email 2.0.1 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: 'ldadmin' for 'lpadmin' kept cups from starting. 'lpd' failed with errno=EINVAL on musl, thanks to passing bind a struct sockaddr{,_in,_in6,_un} with a reported size of 256. This resulted in lpd print support being unusable. --- main/cups/APKBUILD | 12 ++++++--- main/cups/cups-check-sockaddr-size.patch | 45 ++++++++++++++++++++++++++++++++ main/cups/cups.pre-install | 2 +- 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 main/cups/cups-check-sockaddr-size.patch diff --git a/main/cups/APKBUILD b/main/cups/APKBUILD index f625c3e..9f2352a 100644 --- a/main/cups/APKBUILD +++ b/main/cups/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=cups pkgver=1.7.3 -pkgrel=0 +pkgrel=1 pkgdesc="The CUPS Printing System" url="http://www.cups.org/" arch="all" @@ -19,6 +19,7 @@ source="http://www.cups.org/software/$pkgver/cups-$pkgver-source.tar.bz2 $pkgname.logrotate cupsd.initd cups-no-export-ssllibs.patch + cups-check-sockaddr-size.patch " _builddir="$srcdir"/$pkgname-$pkgver @@ -120,12 +121,15 @@ client() { md5sums="d498c3020acda0904ab0c13b6389a1ec cups-1.7.3-source.tar.bz2 f861b18f4446c43918c8643dcbbd7f6d cups.logrotate 1154ed66fdcfa0523f929a369079f43c cupsd.initd -3ba9e3410df1dc3015463d615ef91b3b cups-no-export-ssllibs.patch" +3ba9e3410df1dc3015463d615ef91b3b cups-no-export-ssllibs.patch +81391375d22df6808a1042a0fae85845 cups-check-sockaddr-size.patch" sha256sums="fa989f856d1499169dc442fb2311053ea42fe455ca2721693ba5a9fe4b333e31 cups-1.7.3-source.tar.bz2 b3308353504bc1cc0d5203ad3609bc98639ad9655b52e8ec8257286877532796 cups.logrotate 3ea71f13cf925736847ca44aa0f1a9ed944fb3d303c34af923140b20fd587e2b cupsd.initd -ff3eb0782af0405f5dafe89e04b1b4ea7a49afc5496860d724343bd04f375832 cups-no-export-ssllibs.patch" +ff3eb0782af0405f5dafe89e04b1b4ea7a49afc5496860d724343bd04f375832 cups-no-export-ssllibs.patch +32a06c70093f8ad52e35520048b68d544f13f5c8094f85bab53ff54c809012ef cups-check-sockaddr-size.patch" sha512sums="78e5275682322a52c5e10d87c106059900595c4fd167924bece30d32b646c304ecc0f5051c53cb983b75d5a5ab76fd5b81931fb6f191b9e936f2528ca869798e cups-1.7.3-source.tar.bz2 162fe69ee46962f7ce07a9a2a75154682088895c4749c9bcfc54bb2aa861f48d7d1a8e3223f78a197319a3a405626ffe996615f6eb23168afcefabab343d5be0 cups.logrotate 3c5f4017cb1faf3e63551db53da4cb8305601adf65358bc53e982c5a0dfdd2b455a8ce735760ae3cc5ef81cdfa2a3cfe4be4107d1858d7ab9d91b4b97d3bc73b cupsd.initd -7a8cd9ac33b0dd4627c72df4275db8ccd7cf8e201bce3833719b42f532f526bb347b842e3ea1ef0d61855b5c6e1088b5d20b68942f2c2c0acf504d8d9728efd3 cups-no-export-ssllibs.patch" +7a8cd9ac33b0dd4627c72df4275db8ccd7cf8e201bce3833719b42f532f526bb347b842e3ea1ef0d61855b5c6e1088b5d20b68942f2c2c0acf504d8d9728efd3 cups-no-export-ssllibs.patch +ef0d1d80bf78de8bc29821f675891409605515a89358615d56b76d534ee0935ac9cffa625ba8622f5351d0efc030dead11d885b1f125df2beb42e3afd377ff9a cups-check-sockaddr-size.patch" diff --git a/main/cups/cups-check-sockaddr-size.patch b/main/cups/cups-check-sockaddr-size.patch new file mode 100644 index 0000000..ce966dc --- /dev/null +++ b/main/cups/cups-check-sockaddr-size.patch @@ -0,0 +1,45 @@ +diff --git a/backend/lpd.c b/backend/lpd.c +index 6e4ab36..bbffb82 100644 +--- a/backend/lpd.c ++++ b/backend/lpd.c +@@ -1244,6 +1244,7 @@ rresvport_af(int *port, /* IO - Port number to bind to */ + { + http_addr_t addr; /* Socket address */ + int fd; /* Socket file descriptor */ ++ socklen_t socksz=sizeof(struct sockaddr); /* size of struct sockaddr* */ + + + /* +@@ -1260,6 +1261,23 @@ rresvport_af(int *port, /* IO - Port number to bind to */ + memset(&addr, 0, sizeof(addr)); + addr.addr.sa_family = family; + ++ switch(family) { ++ case AF_INET: ++ socksz = sizeof(struct sockaddr_in); ++ break; ++#ifdef AF_INET6 ++ case AF_INET6: ++ socksz = sizeof(struct sockaddr_in6); ++ break; ++#endif ++#ifdef AF_LOCAL ++ case AF_LOCAL: ++ socksz = sizeof(struct sockaddr_un); ++#endif ++ default: ++ break; ++ } ++ + /* + * Try to bind the socket to a reserved port... + */ +@@ -1276,7 +1294,7 @@ rresvport_af(int *port, /* IO - Port number to bind to */ + * Try binding the port to the socket; return if all is OK... + */ + +- if (!bind(fd, (struct sockaddr *)&addr, sizeof(addr))) ++ if (!bind(fd, (struct sockaddr *)&addr, socksz)) + return (fd); + + /* diff --git a/main/cups/cups.pre-install b/main/cups/cups.pre-install index f6b88cb..468163c 100644 --- a/main/cups/cups.pre-install +++ b/main/cups/cups.pre-install @@ -1,6 +1,6 @@ #!/bin/sh -addgroup -S ldadmin 2>/dev/null +addgroup -S lpadmin 2>/dev/null addgroup -S lp 2>/dev/null adduser -S -G lp lp 2>/dev/null addgroup lp lp 2>/dev/null -- 2.0.1 --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---