r4527 - in glibc-package/trunk/debian: . patches patches/hurd-i386
Author: sthibault
Date: 2011-02-22 00:52:51 +0000 (Tue, 22 Feb 2011)
New Revision: 4527
Added:
glibc-package/trunk/debian/patches/hurd-i386/submitted-if_freereq.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
Log:
patches/hurd-i386/submitted-if_freereq.diff: Fix crash when siocgifconf actually succeeds.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2011-02-21 02:40:46 UTC (rev 4526)
+++ glibc-package/trunk/debian/changelog 2011-02-22 00:52:51 UTC (rev 4527)
@@ -7,6 +7,8 @@
* patches/any/submitted-sched_h.diff: Synchronize bits/sched.h with
sysdeps/unix/sysv/linux/bits/sched.h (Closes: #527589), rename to
cvs-sched_h.diff.
+ * patches/hurd-i386/submitted-if_freereq.diff: Fix crash when siocgifconf
+ actually succeeds.
[ Clint Adams ]
* Patch from Nobuhiro Iwamatsu to cope with the removal of
Added: glibc-package/trunk/debian/patches/hurd-i386/submitted-if_freereq.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/submitted-if_freereq.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/submitted-if_freereq.diff 2011-02-22 00:52:51 UTC (rev 4527)
@@ -0,0 +1,61 @@
+2011-02-22 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ Fix __if_freereq crash: Unlike the generic version which uses free, Hurd
+ needs munmap.
+
+ * sysdeps/mach/hurd/ifreq.h: New file.
+
+---
+ ifreq.h | 45 +++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 45 insertions(+)
+diff --git a/sysdeps/mach/hurd/ifreq.h b/sysdeps/mach/hurd/ifreq.h
+new file mode 100644
+index 0000000..99a6b94
+--- /dev/null
++++ b/sysdeps/mach/hurd/ifreq.h
+@@ -0,0 +1,45 @@
++/* Copyright (C) 1999, 2002, 2003, 2011 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Andreas Jaeger <aj@suse.de>.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <net/if.h>
++#include <sys/socket.h>
++#include <sys/ioctl.h>
++#include <sys/mman.h>
++
++static inline struct ifreq *
++__if_nextreq (struct ifreq *ifr)
++{
++#ifdef _HAVE_SA_LEN
++ if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr)
++ return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len);
++#endif
++ return ifr + 1;
++}
++
++extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd);
++
++
++static inline void
++__if_freereq (struct ifreq *ifreqs, int num_ifs)
++{
++ munmap (ifreqs, num_ifs * sizeof (struct ifreq));
++}
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2011-02-21 02:40:46 UTC (rev 4526)
+++ glibc-package/trunk/debian/patches/series 2011-02-22 00:52:51 UTC (rev 4527)
@@ -137,6 +137,7 @@
hurd-i386/submitted-catch-signal.diff
hurd-i386/cvs-sendmsg-leak.diff
hurd-i386/local-sendmsg-SCM_RIGHTS.diff
+hurd-i386/submitted-if_freereq.diff
ia64/local-dlfptr.diff
ia64/submitted-sysconf.diff
Reply to: