Added patch for capability support rather UID check (#589770)

This commit is contained in:
Robert Scheck 2010-07-09 21:16:57 +00:00
parent c71dd73dda
commit 468bbb009a
2 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,45 @@
Patch by Robert Scheck <robert@fedoraproject.org> for libnet >= 1.1.4, which backports
capability support instead of explicitly checking for UID 0. Further information can be
found at the following links:
- https://bugzilla.redhat.com/show_bug.cgi?id=589770
- http://github.com/sam-github/libnet/commit/671742244c20804c9e935326e3649dac3382f17a
--- libnet-1.1.4/src/libnet_init.c 2009-06-05 02:31:44.000000000 +0200
+++ libnet-1.1.4/src/libnet_init.c.capability 2010-07-09 22:57:10.000000000 +0200
@@ -44,14 +44,7 @@
{
libnet_t *l = NULL;
-#if !defined(__WIN32__)
- if (getuid() && geteuid())
- {
- snprintf(err_buf, LIBNET_ERRBUF_SIZE,
- "%s(): UID or EUID of 0 required\n", __func__);
- goto bad;
- }
-#else
+#if defined(__WIN32__)
WSADATA wsaData;
if ((WSAStartup(0x0202, &wsaData)) != 0)
--- libnet-1.1.4/src/libnet_link_linux.c 2009-06-05 02:31:44.000000000 +0200
+++ libnet-1.1.4/src/libnet_link_linux.c.capability 2010-07-09 22:58:33.000000000 +0200
@@ -90,8 +90,15 @@
if (ioctl(l->fd, SIOCGIFHWADDR, &ifr) < 0 )
{
- snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
- "SIOCGIFHWADDR: %s", strerror(errno));
+ if (errno == EPERM) {
+ snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
+ "%s(): UID/EUID 0 or capability CAP_NET_RAW required",
+ __func__);
+
+ } else {
+ snprintf(l->err_buf, LIBNET_ERRBUF_SIZE,
+ "socket: %s", strerror(errno));
+ }
goto bad;
}

View File

@ -1,11 +1,12 @@
Summary: C library for portable packet creation and injection
Name: libnet
Version: 1.1.4
Release: 3%{?dist}
Release: 4%{?dist}
License: BSD
Group: System Environment/Libraries
URL: http://www.sourceforge.net/projects/libnet-dev/
Source: http://downloads.sourceforge.net/libnet-dev/%{name}-%{version}.tar.gz
Patch0: libnet-1.1.4-capability.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
@ -29,6 +30,7 @@ and sample test code for more detailed information.
%prep
%setup -q
%patch0 -p1 -b .capability
# Keep the sample directory untouched by make
rm -rf __dist_sample
@ -84,6 +86,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man3/%{name}*.3*
%changelog
* Fri Jul 09 2010 Robert Scheck <robert@fedoraproject.org> 1.1.4-4
- Added patch for capability support rather UID check (#589770)
* Fri Aug 21 2009 Robert Scheck <robert@fedoraproject.org> 1.1.4-3
- Move libnet.so.* to /lib[64] to avoid static linking (#518150)