r49336 - in /trunk/libsocket-getaddrinfo-perl: Build.PL Changes LICENSE META.yml README debian/changelog lib/Socket/GetAddrInfo.pm lib/Socket/GetAddrInfo.xs
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Thu Dec 24 14:45:52 UTC 2009
Author: jawnsy-guest
Date: Thu Dec 24 14:45:45 2009
New Revision: 49336
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=49336
Log:
New upstream release
Modified:
trunk/libsocket-getaddrinfo-perl/Build.PL
trunk/libsocket-getaddrinfo-perl/Changes
trunk/libsocket-getaddrinfo-perl/LICENSE
trunk/libsocket-getaddrinfo-perl/META.yml
trunk/libsocket-getaddrinfo-perl/README
trunk/libsocket-getaddrinfo-perl/debian/changelog
trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.pm
trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.xs
Modified: trunk/libsocket-getaddrinfo-perl/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/Build.PL?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/Build.PL (original)
+++ trunk/libsocket-getaddrinfo-perl/Build.PL Thu Dec 24 14:45:45 2009
@@ -4,7 +4,7 @@
use Module::Build;
eval { require ExtUtils::CBuilder; 1 } or
- die "OS unsupported";
+ die "OS unsupported - missing ExtUtils::CBuilder";
my $HAVE_SOCKADDR_SA_LEN;
Modified: trunk/libsocket-getaddrinfo-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/Changes?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/Changes (original)
+++ trunk/libsocket-getaddrinfo-perl/Changes Thu Dec 24 14:45:45 2009
@@ -1,4 +1,10 @@
Revision history for Socket-GetAddrInfo
+
+0.14 BUGFIXES:
+ * Don't leak memory on getnameinfo() failures
+ * Avoid possible sockaddr alignment errors by allocating/copying a
+ new buffer
+ (thanks to Zefram)
0.13 CHANGES:
* Don't warn if only importing symbolic constants; test this
Modified: trunk/libsocket-getaddrinfo-perl/LICENSE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/LICENSE?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/LICENSE (original)
+++ trunk/libsocket-getaddrinfo-perl/LICENSE Thu Dec 24 14:45:45 2009
@@ -1,4 +1,5 @@
-This software is copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk>.
+This software is copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk> & With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs in the
+XS code..
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +13,8 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk>.
+This software is Copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk> & With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs in the
+XS code..
This is free software, licensed under:
@@ -270,7 +272,8 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk>.
+This software is Copyright (c) 2009 by Paul Evans <leonerd at leonerd.org.uk> & With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs in the
+XS code..
This is free software, licensed under:
Modified: trunk/libsocket-getaddrinfo-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/META.yml?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/META.yml (original)
+++ trunk/libsocket-getaddrinfo-perl/META.yml Thu Dec 24 14:45:45 2009
@@ -1,8 +1,11 @@
---
name: Socket-GetAddrInfo
-version: 0.13
+version: 0.14
author:
- 'Paul Evans <leonerd at leonerd.org.uk>'
+ - |-
+ With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs in the
+ XS code.
abstract: |-
RFC 2553's C<getaddrinfo> and C<getnameinfo>
functions.
@@ -23,7 +26,7 @@
provides:
Socket::GetAddrInfo:
file: lib/Socket/GetAddrInfo.pm
- version: 0.13
+ version: 0.14
generated_by: Module::Build version 0.35
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
Modified: trunk/libsocket-getaddrinfo-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/README?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/README (original)
+++ trunk/libsocket-getaddrinfo-perl/README Thu Dec 24 14:45:45 2009
@@ -197,3 +197,6 @@
AUTHOR
Paul Evans <leonerd at leonerd.org.uk>
+ With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs
+ in the XS code.
+
Modified: trunk/libsocket-getaddrinfo-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/debian/changelog?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/debian/changelog (original)
+++ trunk/libsocket-getaddrinfo-perl/debian/changelog Thu Dec 24 14:45:45 2009
@@ -1,9 +1,13 @@
-libsocket-getaddrinfo-perl (0.13-2) UNRELEASED; urgency=low
+libsocket-getaddrinfo-perl (0.14-1) UNRELEASED; urgency=low
+ [ gregor herrmann ]
* debian/control: Changed: (build-)depend on perl instead of perl-
modules.
- -- gregor herrmann <gregoa at debian.org> Sun, 20 Dec 2009 15:15:58 +0100
+ [ Jonathan Yu ]
+ * New upstream release
+
+ -- Jonathan Yu <jawnsy at cpan.org> Thu, 24 Dec 2009 06:33:50 -0500
libsocket-getaddrinfo-perl (0.13-1) unstable; urgency=low
Modified: trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.pm?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.pm (original)
+++ trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.pm Thu Dec 24 14:45:45 2009
@@ -18,7 +18,7 @@
BEGIN {
our @ISA = qw( Exporter );
- our $VERSION = "0.13";
+ our $VERSION = "0.14";
our @EXPORT = qw(
getaddrinfo
@@ -560,3 +560,6 @@
=head1 AUTHOR
Paul Evans <leonerd at leonerd.org.uk>
+
+With thanks to Zefram <zefram at fysh.org> for help with fixing some bugs in the
+XS code.
Modified: trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.xs?rev=49336&op=diff
==============================================================================
--- trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.xs (original)
+++ trunk/libsocket-getaddrinfo-perl/lib/Socket/GetAddrInfo.xs Thu Dec 24 14:45:45 2009
@@ -11,6 +11,11 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
+
+// Newx was new in 5.9.3
+#ifndef Newx
+# define Newx(p,n,t) New(0,p,n,t)
+#endif
SV *err_to_SV(int err)
{
@@ -174,41 +179,39 @@
int flags
PREINIT:
- SV *host;
- SV *serv;
- struct sockaddr *sa;
+ char host[1024];
+ char serv[256];
+ char *sa; /* we'll cast to struct sockaddr * when necessary */
STRLEN addr_len;
int err;
PPCODE:
- host = newSVpvn("", 1023);
- serv = newSVpvn("", 255);
-
- /* If we need to set sa_len, then we'd best take a copy of the SV */
+ if(!SvPOK(addr))
+ croak("addr is not a string");
+
+ addr_len = SvCUR(addr);
+
+ /* We need to ensure the sockaddr is aligned, because a random SvPV might
+ * not be due to SvOOK */
+ Newx(sa, addr_len, char);
+ Copy(SvPV_nolen(addr), sa, addr_len, char);
#if HAVE_SOCKADDR_SA_LEN
- {
- SV *addr_copy = sv_mortalcopy(addr);
- sa = (struct sockaddr *) SvPV(addr_copy, addr_len);
- sa->sa_len = addr_len;
- }
-#else
- sa = (struct sockaddr *) SvPV(addr, addr_len);
-#endif
-
- err = getnameinfo(sa, addr_len,
- SvPV_nolen(host), SvCUR(host) + 1, // Perl doesn't include final NUL
- SvPV_nolen(serv), SvCUR(serv) + 1, // Perl doesn't include final NUL
+ ((struct sockaddr *)sa)->sa_len = addr_len;
+#endif
+
+ err = getnameinfo((struct sockaddr *)sa, addr_len,
+ host, sizeof(host),
+ serv, sizeof(serv),
flags);
+
+ Safefree(sa);
XPUSHs(err_to_SV(err));
if(err)
XSRETURN(1);
- SvCUR_set(host, strlen(SvPV_nolen(host)));
- SvCUR_set(serv, strlen(SvPV_nolen(serv)));
-
- XPUSHs(sv_2mortal(host));
- XPUSHs(sv_2mortal(serv));
+ XPUSHs(sv_2mortal(newSVpv(host, 0)));
+ XPUSHs(sv_2mortal(newSVpv(serv, 0)));
XSRETURN(3);
More information about the Pkg-perl-cvs-commits
mailing list