This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to branch master in repository libdbd-mysql-perl.
commit 01546f17b9774a5a42dc46ef072fb075fedca62f Author: gregor herrmann <gre...@debian.org> Date: Sat Feb 25 22:25:25 2017 +0100 Add regression-fix-float_type_conversion.patch to fix a regression in the conversion of floats which under some circumstances simply returned 0. Thanks: Brian May for the bug report, and Pali Rohár for backporting his fix to 4.041. Closes: #856064 --- .../regression-fix-float_type_conversion.patch | 47 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 48 insertions(+) diff --git a/debian/patches/regression-fix-float_type_conversion.patch b/debian/patches/regression-fix-float_type_conversion.patch new file mode 100644 index 0000000..041ba0a --- /dev/null +++ b/debian/patches/regression-fix-float_type_conversion.patch @@ -0,0 +1,47 @@ +From: Pali <p...@cpan.org> +Date: Fri, 24 Feb 2017 19:51:36 +0100 +Subject: [PATCH] Fix type conversions + +Calling SvNV() for magical scalar is not enough for float type conversion. +It caused problem for Amavis in tainted mode -- all float values were zero. +On the other hand SvIV() and SvUV() seems to work fine. To be sure that +correct value of float is in scalar use sv_setnv() with explicit NV float +value. Similar code is changed also for integers IV/UV. + +This patch should fix reported Amavis bug: +https://github.com/perl5-dbi/DBD-mysql/issues/78 + +See also reported perl bug about SvNV(): +https://rt.perl.org/Public/Bug/Display.html?id=130801 + +Bugs: https://github.com/perl5-dbi/DBD-mysql/issues/78 +Bugs-Debian: https://bugs.debian.org/856064 + +--- a/dbdimp.c ++++ b/dbdimp.c +@@ -4250,8 +4250,7 @@ + switch (mysql_to_perl_type(fields[i].type)) { + case MYSQL_TYPE_DOUBLE: + /* Coerce to dobule and set scalar as NV */ +- (void) SvNV(sv); +- SvNOK_only(sv); ++ sv_setnv(sv, SvNV(sv)); + break; + + case MYSQL_TYPE_LONG: +@@ -4259,13 +4258,11 @@ + /* Coerce to integer and set scalar as UV resp. IV */ + if (fields[i].flags & UNSIGNED_FLAG) + { +- (void) SvUV(sv); +- SvIOK_only_UV(sv); ++ sv_setuv(sv, SvUV(sv)); + } + else + { +- (void) SvIV(sv); +- SvIOK_only(sv); ++ sv_setiv(sv, SvIV(sv)); + } + break; + diff --git a/debian/patches/series b/debian/patches/series index 888c730..119fb57 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ test-user.patch +regression-fix-float_type_conversion.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdbd-mysql-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits