summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Jaroszyński <peper@gentoo.org>2008-10-27 12:52:56 +0000
committerPiotr Jaroszyński <peper@gentoo.org>2008-10-27 12:52:56 +0000
commitd256f02039e3ff3352063c1f72bdca921d4d48b2 (patch)
tree92f555452fe491affec4dbca8da18bea11ee2b04 /net-wireless
parentSparc stable, Bug #244594. (diff)
downloadhistorical-d256f02039e3ff3352063c1f72bdca921d4d48b2.tar.gz
historical-d256f02039e3ff3352063c1f72bdca921d4d48b2.tar.bz2
historical-d256f02039e3ff3352063c1f72bdca921d4d48b2.zip
Add 1.53-r1 straight to x86. Security bug #239371.
Package-Manager: portage-2.2_rc12/cvs/Linux 2.6.26-gentoo x86_64 RepoMan-Options: --force
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/ndiswrapper/ChangeLog8
-rw-r--r--net-wireless/ndiswrapper/Manifest14
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-CVE-2008-4395.patch86
-rw-r--r--net-wireless/ndiswrapper/ndiswrapper-1.53-r1.ebuild124
4 files changed, 220 insertions, 12 deletions
diff --git a/net-wireless/ndiswrapper/ChangeLog b/net-wireless/ndiswrapper/ChangeLog
index 35b6ca3931c7..c45f19ff509e 100644
--- a/net-wireless/ndiswrapper/ChangeLog
+++ b/net-wireless/ndiswrapper/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-wireless/ndiswrapper
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/ndiswrapper/ChangeLog,v 1.102 2008/05/30 10:33:36 peper Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ndiswrapper/ChangeLog,v 1.103 2008/10/27 12:52:56 peper Exp $
+
+*ndiswrapper-1.53-r1 (27 Oct 2008)
+
+ 27 Oct 2008; Piotr Jaroszyński <peper@gentoo.org>
+ +files/ndiswrapper-CVE-2008-4395.patch, +ndiswrapper-1.53-r1.ebuild:
+ Add 1.53-r1 straight to x86. Security bug #239371.
*ndiswrapper-1.53 (30 May 2008)
diff --git a/net-wireless/ndiswrapper/Manifest b/net-wireless/ndiswrapper/Manifest
index 63d8a82e0854..6f4c1330e83f 100644
--- a/net-wireless/ndiswrapper/Manifest
+++ b/net-wireless/ndiswrapper/Manifest
@@ -1,9 +1,7 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
AUX ndiswrapper-1.46-ksrc.patch 1635 RMD160 705a2ebc0198eb9c94e041e544128adb44824733 SHA1 fc44ca239c8a8ab067d88a8371fbafb85a1421e9 SHA256 6b46e194ec4418f6497c97d88679f2ecc02451516396cffda43e3945b02dcf52
AUX ndiswrapper-1.47-ksrc.patch 592 RMD160 ac2831b9f676ab4348875f4fae3e54b99b151790 SHA1 4ab7a69f56251f6055a1ec0e4153a6835792d2cf SHA256 38cc21054be40c047c8135d4eb009dd72573a4fa7edb8ee310769e5c54ee16c1
AUX ndiswrapper-1.50_rc1-makefile.patch 600 RMD160 f8b4f17ba938538303e6c895711933a9464f99cb SHA1 ab868623df14704eb4e09cda7cc7b03801afe09b SHA256 8188c4eb1d6ca8353e3c3de27803563c96db5607492e23ef71bcfbdad9336648
+AUX ndiswrapper-CVE-2008-4395.patch 3032 RMD160 ef09a1bed8d81adb62fe700c144a11e0a3ff9a90 SHA1 d333ef0fc877587a0947b3f4dba49f9586136f86 SHA256 62860197b6f9fa749a3c94c2577a8bd0fd101a518592625b3884ca30b97bf71e
AUX ndiswrapper-new_suspend2.patch 891 RMD160 1dbb59e400ea8cac62bbc6cbb2c757b08b078c91 SHA1 6fdde32982d8c422838a3b5f9934245dd5869459 SHA256 dec61532d2c7eec07f387681616026e0472bc1d9024785a1bb5178769f6c2e5c
DIST ndiswrapper-1.47.tar.gz 198265 RMD160 72082c5a825e77e444e2cf29f6e6e5fcc11b2e02 SHA1 2431c8f74cab37d3f4c39c6d1b625e0b8312282e SHA256 8ee24f7a4c625fa12deb69d6fa530618c6eca0909848de439f54ebda16e7d312
DIST ndiswrapper-1.48.tar.gz 199830 RMD160 6e50e1b96fa1c33db427e8be85ca842a4a3aa528 SHA1 570f1feece989088ebb086180f0a6533fa92b0d5 SHA256 17a190c8a21f3d5397bc49e743a918a893d9f97af904e72b9a301b086eeb90ba
@@ -18,13 +16,7 @@ EBUILD ndiswrapper-1.49.ebuild 2946 RMD160 0fb36a76769e61aa900caa6e1e4b954ebb453
EBUILD ndiswrapper-1.50.ebuild 2945 RMD160 8230368ca8cbc01be87a4aa769b15da442987957 SHA1 107855fa2fc3d8c0c55377c0ca327767a71237f4 SHA256 f046f67f4994609f8cc648c1b555a09188b89bbe9747f65e582762a67fde4cf9
EBUILD ndiswrapper-1.51.ebuild 2946 RMD160 bb0235e729f18a4aa989b07844a884d7b9c52290 SHA1 b59a3407e701c7356dc27d7a1a9c5f900617f7b7 SHA256 9bd728fbb2230f11f59666a48caed8f6225fece6c9186554ff8f7e17d0f7fbbd
EBUILD ndiswrapper-1.52.ebuild 2946 RMD160 b38da9817441a0eea032ba4ac0d020bc6e5dc7c0 SHA1 890ae187b4ce48b2f4546cf2341e0027586be228 SHA256 f819c3337caa94702a22c8d6e401f990cef384494f311b58724f7add646bae1a
+EBUILD ndiswrapper-1.53-r1.ebuild 3021 RMD160 c056c9659c90d72cc7ca70c69ce915686beafc50 SHA1 438e760b37fc6f709f003cba630c03a1f8d42a05 SHA256 b9253ecd5850bd60b4d64107ef3c162d548b5985deefb2b1779e5ed3cb51b85c
EBUILD ndiswrapper-1.53.ebuild 2946 RMD160 374bbb2e51718b38ab33d9ee07184390362bed20 SHA1 bc9d6a89299c6a99a912d64f09c5e9e9cb66e794 SHA256 a5ad6aedd1effd912e3f0496c6a317bc81c9b936b8a179854d98685ff2b271ac
-MISC ChangeLog 18609 RMD160 b1b1349228778316276c92146e1a42518f6fc7b4 SHA1 6dd31552bae0d144b43ec0420d51a154fc689c73 SHA256 f12317b746015bfda90ef55899916ac0efc7f9270132f9165af84d37dc8b6678
+MISC ChangeLog 18823 RMD160 5f16837ec4dcfca4d3fc2c06c61858f2a4782a09 SHA1 1d62426127157f456f3f2995d3ec77ec1f739e52 SHA256 1d141bd6c7ed93985eb6a9c27e2bbd9bb4f6b75b4d8f8774e8c24ab83c0a5f87
MISC metadata.xml 480 RMD160 bd309ddc508e0436d0b2bb4c6ac2915fb7d9cea7 SHA1 14a2b92b64b18b0b79653fe64a9c282ae16331f2 SHA256 7ca20f317d16e17be26b34401258fc10ceb6d5698e89fc853fae59aa74cb0e66
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.9 (GNU/Linux)
-
-iEYEARECAAYFAkg/2AcACgkQppoStNGKGyzMhACgyg+wsHPF5HKk3BZhc1ZY408V
-e7UAoJal7nqC+iLDjb8f+ckv96JW6gs0
-=1f8w
------END PGP SIGNATURE-----
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-CVE-2008-4395.patch b/net-wireless/ndiswrapper/files/ndiswrapper-CVE-2008-4395.patch
new file mode 100644
index 000000000000..53682e0e629a
--- /dev/null
+++ b/net-wireless/ndiswrapper/files/ndiswrapper-CVE-2008-4395.patch
@@ -0,0 +1,86 @@
+diff --git a/ubuntu/ndiswrapper/iw_ndis.c b/ubuntu/ndiswrapper/iw_ndis.c
+index b114ef6..01d3751 100644
+--- a/ubuntu/ndiswrapper/iw_ndis.c
++++ b/ubuntu/ndiswrapper/iw_ndis.c
+@@ -47,12 +47,7 @@ int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len)
+ req.length = ssid_len;
+ if (ssid_len)
+ memcpy(&req.essid, ssid, ssid_len);
+- DBG_BLOCK(2) {
+- char buf[NDIS_ESSID_MAX_SIZE+1];
+- memcpy(buf, ssid, ssid_len);
+- buf[ssid_len] = 0;
+- TRACE2("ssid = '%s'", buf);
+- }
++ TRACE2("ssid = '%.*s'", ssid_len, ssid);
+
+ res = mp_set(wnd, OID_802_11_SSID, &req, sizeof(req));
+ if (res) {
+@@ -125,7 +120,6 @@ static int iw_get_essid(struct net_device *dev, struct iw_request_info *info,
+ EXIT2(return -EOPNOTSUPP);
+ }
+ memcpy(extra, req.essid, req.length);
+- extra[req.length] = 0;
+ if (req.length > 0)
+ wrqu->essid.flags = 1;
+ else
+@@ -1000,7 +994,7 @@ static int iw_set_nick(struct net_device *dev, struct iw_request_info *info,
+
+ if (wrqu->data.length > IW_ESSID_MAX_SIZE || wrqu->data.length <= 0)
+ return -EINVAL;
+- memset(wnd->nick, 0, sizeof(wnd->nick));
++ wnd->nick_len = wrqu->data.length;
+ memcpy(wnd->nick, extra, wrqu->data.length);
+ return 0;
+ }
+@@ -1010,7 +1004,7 @@ static int iw_get_nick(struct net_device *dev, struct iw_request_info *info,
+ {
+ struct ndis_device *wnd = netdev_priv(dev);
+
+- wrqu->data.length = strlen(wnd->nick);
++ wrqu->data.length = wnd->nick_len;
+ memcpy(extra, wnd->nick, wrqu->data.length);
+ return 0;
+ }
+diff --git a/ubuntu/ndiswrapper/ndis.h b/ubuntu/ndiswrapper/ndis.h
+index 27ba99e..65d6b0b 100644
+--- a/ubuntu/ndiswrapper/ndis.h
++++ b/ubuntu/ndiswrapper/ndis.h
+@@ -878,6 +878,7 @@ struct ndis_device {
+ unsigned long scan_timestamp;
+ struct encr_info encr_info;
+ char nick[IW_ESSID_MAX_SIZE];
++ size_t nick_len;
+ struct ndis_essid essid;
+ struct auth_encr_capa capa;
+ enum ndis_infrastructure_mode infrastructure_mode;
+diff --git a/ubuntu/ndiswrapper/proc.c b/ubuntu/ndiswrapper/proc.c
+index fd5f433..6feff23 100644
+--- a/ubuntu/ndiswrapper/proc.c
++++ b/ubuntu/ndiswrapper/proc.c
+@@ -97,10 +97,8 @@ static int procfs_read_ndis_encr(char *page, char **start, off_t off,
+ p += sprintf(p, "\n");
+
+ res = mp_query(wnd, OID_802_11_SSID, &essid, sizeof(essid));
+- if (!res) {
+- essid.essid[essid.length] = '\0';
+- p += sprintf(p, "essid=%s\n", essid.essid);
+- }
++ if (!res)
++ p += sprintf(p, "essid=%.*s\n", essid.length, essid.essid);
+ res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &encr_status);
+ if (!res) {
+ typeof(&wnd->encr_info.keys[0]) tx_key;
+diff --git a/ubuntu/ndiswrapper/wrapndis.c b/ubuntu/ndiswrapper/wrapndis.c
+index f6e5d46..35ef1cd 100644
+--- a/ubuntu/ndiswrapper/wrapndis.c
++++ b/ubuntu/ndiswrapper/wrapndis.c
+@@ -2028,7 +2028,7 @@ static wstdcall NTSTATUS NdisAddDevice(struct driver_object *drv_obj,
+ wnd->attributes = 0;
+ wnd->dma_map_count = 0;
+ wnd->dma_map_addr = NULL;
+- wnd->nick[0] = 0;
++ wnd->nick_len = 0;
+ init_timer(&wnd->hangcheck_timer);
+ wnd->scan_timestamp = 0;
+ init_timer(&wnd->iw_stats_timer);
diff --git a/net-wireless/ndiswrapper/ndiswrapper-1.53-r1.ebuild b/net-wireless/ndiswrapper/ndiswrapper-1.53-r1.ebuild
new file mode 100644
index 000000000000..c19a45ba3da5
--- /dev/null
+++ b/net-wireless/ndiswrapper/ndiswrapper-1.53-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/ndiswrapper/ndiswrapper-1.53-r1.ebuild,v 1.1 2008/10/27 12:52:56 peper Exp $
+
+inherit linux-mod
+
+MY_P=${PN}-${PV/_/}
+
+DESCRIPTION="Wrapper for using Windows drivers for some wireless cards"
+HOMEPAGE="http://ndiswrapper.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 x86"
+IUSE="debug usb"
+
+DEPEND="sys-apps/pciutils"
+RDEPEND="${DEPEND}
+ net-wireless/wireless-tools"
+
+CONFIG_CHECK="WIRELESS_EXT"
+
+S=${WORKDIR}/${MY_P}
+
+MODULE_NAMES="ndiswrapper(misc:${S}/driver)"
+BUILD_TARGETS="all"
+MODULESD_NDISWRAPPER_ALIASES=("wlan0 ndiswrapper")
+
+ERROR_USB="You need to enable USB support in your kernel
+to use usb support in ndiswrapper."
+
+pkg_setup() {
+ echo
+ einfo "See http://www.gentoo.org/doc/en/gentoo-kernel.xml"
+ einfo "for a list of supported kernels."
+ echo
+
+ use usb && CONFIG_CHECK="${CONFIG_CHECK} USB"
+ linux-mod_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+ convert_to_m "${S}/driver/Makefile"
+
+ cd "${S}/driver"
+ epatch "${FILESDIR}/ndiswrapper-CVE-2008-4395.patch"
+}
+
+src_compile() {
+ local params
+
+ # Enable verbose debugging information
+ if use debug; then
+ params="DEBUG=3"
+ use usb && params="${params} USB_DEBUG=1"
+ fi
+
+ cd utils
+ emake || die "Compile of utils failed!"
+
+ use usb || params="DISABLE_USB=1"
+
+ # Does not like parallel builds
+ # http://bugs.gentoo.org/show_bug.cgi?id=154213
+ # KBUILD value can't be quoted
+ # http://bugs.gentoo.org/show_bug.cgi?id=156319
+ BUILD_PARAMS="KSRC=${KV_DIR} KVERS=${KV_FULL} KBUILD=${KV_OUT_DIR} ${params} -j1"
+ linux-mod_src_compile
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog INSTALL README
+ doman ndiswrapper.8 || die
+
+ keepdir /etc/ndiswrapper
+
+ linux-mod_src_install
+
+ cd utils
+ emake DESTDIR="${D}" install || die "emake install failed"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ echo
+ elog "NDISwrapper requires .inf and .sys files from a Windows(tm) driver"
+ elog "to function. Download these to /root for example, then"
+ elog "run 'ndiswrapper -i /root/foo.inf'. After that you can delete them."
+ elog "They will be copied to /etc/ndiswrapper/."
+ elog "Once done, please run 'update-modules'."
+ elog
+
+ elog "Please look at ${HOMEPAGE}"
+ elog "for the FAQ, HowTos, tips, configuration, and installation"
+ elog "information."
+ elog
+
+ local i=$(lspci -n | egrep 'Class (0280|0200):' | cut -d' ' -f4)
+ if [[ -n "${i}" ]] ; then
+ elog "Possible hardware: ${i}"
+ elog
+ fi
+
+ elog "NDISwrapper devs need support (_hardware_, cash)."
+ elog "Don't hesitate if you can help."
+ elog "See ${HOMEPAGE} for details."
+ echo
+
+ if [[ ${ROOT} == "/" ]]; then
+
+ einfo "Attempting to automatically reinstall any Windows drivers"
+ einfo "you might already have."
+ echo
+
+ local driver
+ for driver in $(ls /etc/ndiswrapper) ; do
+ einfo "Driver: ${driver}"
+ mv "/etc/ndiswrapper/${driver}" "${T}"
+ ndiswrapper -i "${T}/${driver}/${driver}.inf"
+ done
+ fi
+}