[perl-Socket/f16] Fix invalid write while unpacking AF_UNIX sockaddr

Petr Pisar ppisar at fedoraproject.org
Tue Mar 27 08:14:34 UTC 2012


commit d9b4f675feb84397bc9927a93128e85e52e8868f
Author: Petr Písař <ppisar at redhat.com>
Date:   Tue Mar 27 09:31:13 2012 +0200

    Fix invalid write while unpacking AF_UNIX sockaddr

 ...x-AF_UNIX-sockaddr-padding-initialization.patch |   26 ++++++++++++++++++++
 perl-Socket.spec                                   |    8 +++++-
 2 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/Socket-2.000-Fix-AF_UNIX-sockaddr-padding-initialization.patch b/Socket-2.000-Fix-AF_UNIX-sockaddr-padding-initialization.patch
new file mode 100644
index 0000000..4d8a260
--- /dev/null
+++ b/Socket-2.000-Fix-AF_UNIX-sockaddr-padding-initialization.patch
@@ -0,0 +1,26 @@
+From f76970735bf4f9b2587d109aff732cd5a28b01ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Tue, 27 Mar 2012 09:26:40 +0200
+Subject: [PATCH] Fix AF_UNIX sockaddr padding initialization
+
+<http://rt.cpan.org/Public/Bug/Display.html?id=76067>.
+---
+ Socket.xs |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Socket.xs b/Socket.xs
+index 3999c4b..fc0b39a 100644
+--- a/Socket.xs
++++ b/Socket.xs
+@@ -712,7 +712,7 @@ unpack_sockaddr_un(sun_sv)
+ 	   getpeername and getsockname is not equal to sizeof(addr). */
+ 	if (sockaddrlen < sizeof(addr)) {
+ 	  Copy(sun_ad, &addr, sockaddrlen, char);
+-	  Zero(&addr+sockaddrlen, sizeof(addr)-sockaddrlen, char);
++	  Zero(((char*)&addr)+sockaddrlen, sizeof(addr)-sockaddrlen, char);
+ 	} else {
+ 	  Copy(sun_ad, &addr, sizeof(addr), char);
+ 	}
+-- 
+1.7.9.3
+
diff --git a/perl-Socket.spec b/perl-Socket.spec
index 9f93043..a855a12 100644
--- a/perl-Socket.spec
+++ b/perl-Socket.spec
@@ -1,12 +1,14 @@
 %global cpan_version 2.000
 Name:           perl-Socket
 Version:        %(eval echo '%{cpan_version}' | tr '_' '.')
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        C socket.h defines and structure manipulators
 License:        GPL+ or Artistic
 Group:          Development/Libraries
 URL:            http://search.cpan.org/dist/Socket/
 Source0:        http://search.cpan.org/CPAN/authors/id/P/PE/PEVANS/Socket-%{cpan_version}.tar.gz
+# Bug #806543, CPAN RT#76067
+Patch0:         Socket-2.000-Fix-AF_UNIX-sockaddr-padding-initialization.patch
 BuildRequires:  perl(ExtUtils::MakeMaker)
 BuildRequires:  perl(ExtUtils::CBuilder)
 BuildRequires:  perl(ExtUtils::Constant) >= 0.23
@@ -30,6 +32,7 @@ includes all of the commonly used pound-defines like AF_INET, SOCK_STREAM, etc.
 
 %prep
 %setup -q -n Socket-%{cpan_version}
+%patch0 -p1
 
 %build
 %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"
@@ -52,6 +55,9 @@ make test
 %{_mandir}/man3/*
 
 %changelog
+* Tue Mar 27 2012 Petr Pisar <ppisar at redhat.com> - 2.000-2
+- Fix invalid write while unpacking AF_UNIX sockaddr (bug #806543)
+
 * Wed Mar 14 2012 Petr Pisar <ppisar at redhat.com> - 2.000-1
 - 2.000 bump
 - Fix a buffer overflow (RT#75623)



More information about the perl-devel mailing list