[libcmis] Resolves: rhbz#918079 libcmis::sha1() can return digests with fewer than 40 hexadecimal digits

David Tardon dtardon at fedoraproject.org
Wed Apr 24 12:30:26 UTC 2013


commit e897424fa4bf43005c5c5e855a1f239ea2bd7f61
Author: David Tardon <dtardon at redhat.com>
Date:   Wed Apr 24 14:21:33 2013 +0200

    Resolves: rhbz#918079 libcmis::sha1() can return digests with fewer than 40 hexadecimal digits

 ...-rhbz-918079-always-return-40-hexa-digits.patch |   55 ++++++++++++++++++++
 libcmis.spec                                       |    8 +++-
 2 files changed, 62 insertions(+), 1 deletions(-)
---
diff --git a/0001-rhbz-918079-always-return-40-hexa-digits.patch b/0001-rhbz-918079-always-return-40-hexa-digits.patch
new file mode 100644
index 0000000..706d23c
--- /dev/null
+++ b/0001-rhbz-918079-always-return-40-hexa-digits.patch
@@ -0,0 +1,55 @@
+From 264824628f58a1668b54252babb1add4d3c7eb79 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Mon, 8 Apr 2013 14:07:23 +0200
+Subject: [PATCH 1/3] rhbz#918079 always return 40 hexa digits (cherry picked
+ from commit 8e66145d204f7d053549b7cc28aef6863cfd38c8)
+
+---
+ src/libcmis/test-xmlutils.cxx | 12 ++++++++++--
+ src/libcmis/xml-utils.cxx     |  6 +++++-
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/src/libcmis/test-xmlutils.cxx b/src/libcmis/test-xmlutils.cxx
+index dd5082f..0e527ad 100644
+--- a/src/libcmis/test-xmlutils.cxx
++++ b/src/libcmis/test-xmlutils.cxx
+@@ -431,8 +431,16 @@ void XmlTest::propertyIntegerAsXmlTest( )
+ 
+ void XmlTest::sha1Test( )
+ {
+-    string actual = libcmis::sha1( "Hello" );
+-    CPPUNIT_ASSERT_EQUAL( string( "f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0" ), actual );
++    {
++        string actual = libcmis::sha1( "Hello" );
++        CPPUNIT_ASSERT_EQUAL( string( "f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0" ), actual );
++    }
++
++    {
++        // check correct width
++        string actual = libcmis::sha1( "35969137" );
++        CPPUNIT_ASSERT_EQUAL( string( "0d93546909cfeb5c00089202104df3980000ec9f" ), actual );
++    }
+ }
+ 
+ CPPUNIT_TEST_SUITE_REGISTRATION( XmlTest );
+diff --git a/src/libcmis/xml-utils.cxx b/src/libcmis/xml-utils.cxx
+index dddfafa..645fbcf 100644
+--- a/src/libcmis/xml-utils.cxx
++++ b/src/libcmis/xml-utils.cxx
+@@ -498,8 +498,12 @@ namespace libcmis
+         sha1.get_digest( digest );
+ 
+         stringstream out;
++        // Setup writing mode. Every number must produce eight
++        // hexadecimal digits, including possible leading 0s, or we get
++        // less than 40 digits as result.
++        out << hex << setfill('0') << right;
+         for ( int i = 0; i < 5; ++i )
+-            out << hex << digest[i];
++            out << setw(8) << digest[i];
+         return out.str();
+     }
+ 
+-- 
+1.8.1.4
+
diff --git a/libcmis.spec b/libcmis.spec
index ed90ffc..390a9d5 100644
--- a/libcmis.spec
+++ b/libcmis.spec
@@ -2,7 +2,7 @@
 
 Name: libcmis
 Version: 0.3.1
-Release: 4%{?dist}
+Release: 5%{?dist}
 Summary: A C++ client library for the CMIS interface
 
 Group: System Environment/Libraries
@@ -16,6 +16,7 @@ BuildRequires: libxml2-devel
 BuildRequires: xmlto
 
 Patch0: 0001-libcmis-c-handle-possible-bad-allocations.patch
+Patch1: 0001-rhbz-918079-always-return-40-hexa-digits.patch
 
 %description
 LibCMIS is a C++ client library for the CMIS interface. This allows C++
@@ -43,6 +44,7 @@ command line.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 
 %build
@@ -85,6 +87,10 @@ rm -f %{buildroot}/%{_libdir}/*.la
 
 
 %changelog
+* Wed Apr 24 2013 David Tardon <dtardon at redhat.com> - 0.3.1-5
+- Resolves: rhbz#918079 libcmis::sha1() can return digests with fewer
+  than 40 hexadecimal digits
+
 * Mon Apr 08 2013 David Tardon <dtardon at redhat.com> - 0.3.1-4
 - Resolves: rhbz#918044 memory leaks on exception path in C wrapper
 


More information about the scm-commits mailing list