Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-base64-bytestring for 
openSUSE:Factory checked in at 2021-08-25 20:57:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-base64-bytestring (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-base64-bytestring.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-base64-bytestring"

Wed Aug 25 20:57:24 2021 rev:15 rq:912742 version:1.2.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-base64-bytestring/ghc-base64-bytestring.changes  
    2020-12-22 11:35:32.837263704 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-base64-bytestring.new.1899/ghc-base64-bytestring.changes
    2021-08-25 20:58:40.409124542 +0200
@@ -1,0 +2,9 @@
+Fri Aug 13 09:51:57 UTC 2021 - [email protected]
+
+- Update base64-bytestring to version 1.2.1.0.
+  # 1.2.1.0
+
+  * Bugfix for GHC 9.0.1 memory corruption bug 
([#46](https://github.com/haskell/base64-bytestring/pull/46))
+    * Thanks to [Fraser Tweedale](https://github.com/frasertweedale) and 
[Andrew Lelechenko](https://github.com/bodigrim) for logging and helping with 
this fix.
+
+-------------------------------------------------------------------

Old:
----
  base64-bytestring-1.2.0.1.tar.gz

New:
----
  base64-bytestring-1.2.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-base64-bytestring.spec ++++++
--- /var/tmp/diff_new_pack.v6VIA8/_old  2021-08-25 20:58:40.957123822 +0200
+++ /var/tmp/diff_new_pack.v6VIA8/_new  2021-08-25 20:58:40.961123817 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-base64-bytestring
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %global pkg_name base64-bytestring
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.2.0.1
+Version:        1.2.1.0
 Release:        0
 Summary:        Fast base64 encoding and decoding for ByteStrings
 License:        BSD-3-Clause

++++++ base64-bytestring-1.2.0.1.tar.gz -> base64-bytestring-1.2.1.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.1/CHANGELOG.md 
new/base64-bytestring-1.2.1.0/CHANGELOG.md
--- old/base64-bytestring-1.2.0.1/CHANGELOG.md  2001-09-09 03:46:40.000000000 
+0200
+++ new/base64-bytestring-1.2.1.0/CHANGELOG.md  2001-09-09 03:46:40.000000000 
+0200
@@ -1,9 +1,14 @@
 See also http://pvp.haskell.org/faq
 
+# 1.2.1.0
+
+* Bugfix for GHC 9.0.1 memory corruption bug 
([#46](https://github.com/haskell/base64-bytestring/pull/46))
+  * Thanks to [Fraser Tweedale](https://github.com/frasertweedale) and [Andrew 
Lelechenko](https://github.com/bodigrim) for logging and helping with this fix.
+
 # 1.2.0.1
 
 * Package update: support for `bytestring >=0.11`
- 
+
 # 1.2.0.0
 
 * Security fix: reject non-canonical base64 encoded values - 
([#38](https://github.com/haskell/base64-bytestring/pull/38)) fixing issue 
[#24](https://github.com/haskell/base64-bytestring/issues/24).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Internal.hs 
new/base64-bytestring-1.2.1.0/Data/ByteString/Base64/Internal.hs
--- old/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Internal.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.1.0/Data/ByteString/Base64/Internal.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -49,13 +49,13 @@
 -- | Encode a string into base64 form.  The result will always be a multiple
 -- of 4 bytes in length.
 encodeWith :: Padding -> EncodeTable -> ByteString -> ByteString
-encodeWith !padding !(ET alfaFP encodeTable) !bs = withBS bs go
+encodeWith !padding (ET alfaFP encodeTable) !bs = withBS bs go
   where
     go !sptr !slen
       | slen > maxBound `div` 4 =
         error "Data.ByteString.Base64.encode: input too long"
       | otherwise = do
-        let dlen = ((slen + 2) `div` 3) * 4
+        let dlen = (slen + 2) `div` 3 * 4
         dfp <- mallocByteString dlen
         withForeignPtr alfaFP $ \aptr ->
           withForeignPtr encodeTable $ \ep -> do
@@ -68,7 +68,7 @@
                   i <- peek8_32 sp
                   j <- peek8_32 (sp `plusPtr` 1)
                   k <- peek8_32 (sp `plusPtr` 2)
-                  let w = (i `shiftL` 16) .|. (j `shiftL` 8) .|. k
+                  let w = i `shiftL` 16 .|. j `shiftL` 8 .|. k
                       enc = peekElemOff ep . fromIntegral
                   poke dp =<< enc (w `shiftR` 12)
                   poke (dp `plusPtr` 2) =<< enc (w .&. 0xfff)
@@ -107,7 +107,7 @@
                         else finish (n + 2)
 
 
-            withForeignPtr dfp $! \dptr -> fill (castPtr dptr) sptr 0
+            withForeignPtr dfp (\dptr -> fill (castPtr dptr) sptr 0)
 
 data EncodeTable = ET !(ForeignPtr Word8) !(ForeignPtr Word16)
 
@@ -155,18 +155,16 @@
       | r == 3 -> validateLastPad bs noPad $ withBS (B.append bs (B.replicate 
1 0x3d)) go
       | otherwise -> Left "Base64-encoded bytestring has invalid size"
   where
-    (!q, !r) = (B.length bs) `divMod` 4
+    !r = B.length bs `rem` 4
 
     noPad = "Base64-encoded bytestring required to be unpadded"
     invalidPad = "Base64-encoded bytestring has invalid padding"
 
-    !dlen = q * 3
-
     go !sptr !slen = do
-      dfp <- mallocByteString dlen
-      withForeignPtr decodeFP $! \ !decptr ->
-        withForeignPtr dfp $! \dptr ->
-          decodeLoop decptr sptr dptr (sptr `plusPtr` slen) dfp
+      dfp <- mallocByteString (slen `quot` 4 * 3)
+      withForeignPtr decodeFP (\ !decptr ->
+        withForeignPtr dfp (\dptr ->
+          decodeLoop decptr sptr dptr (sptr `plusPtr` slen) dfp))
 
 decodeLoop
     :: Ptr Word8
@@ -229,9 +227,9 @@
      | c == 0xff = err (plusPtr src 2)
      | d == 0xff = err (plusPtr src 3)
      | otherwise = do
-       let !w = ((shiftL a 18)
-             .|. (shiftL b 12)
-             .|. (shiftL c 6)
+       let !w = (shiftL a 18
+             .|. shiftL b 12
+             .|. shiftL c 6
              .|. d) :: Word32
 
        poke8 dst (fromIntegral (shiftR w 16))
@@ -252,9 +250,9 @@
       | c == 0xff = err (plusPtr src 2)
       | d == 0xff = err (plusPtr src 3)
       | otherwise = do
-        let !w = ((shiftL a 18)
-              .|. (shiftL b 12)
-              .|. (shiftL c 6)
+        let !w = (shiftL a 18
+              .|. shiftL b 12
+              .|. shiftL c 6
               .|. d) :: Word32
 
         poke8 dst (fromIntegral (shiftR w 16))
@@ -308,7 +306,7 @@
                              | otherwise = {-# SCC "decodeLenient/look" #-} do
                           ix <- fromIntegral `fmap` peek8 p
                           v <- peek8 (decptr `plusPtr` ix)
-                          if v == x || (v == done && skipPad)
+                          if v == x || v == done && skipPad
                             then go' (p `plusPtr` 1)
                             else f (p `plusPtr` 1) (fromIntegral v)
                 in look True sp $ \ !aNext !aValue ->
@@ -318,8 +316,8 @@
                      else
                         look False bNext $ \ !cNext !cValue ->
                         look False cNext $ \ !dNext !dValue -> do
-                          let w = (aValue `shiftL` 18) .|. (bValue `shiftL` 
12) .|.
-                                  (cValue `shiftL` 6) .|. dValue
+                          let w = aValue `shiftL` 18 .|. bValue `shiftL` 12 .|.
+                                  cValue `shiftL` 6 .|. dValue
                           poke8 dp $ fromIntegral (w `shiftR` 16)
                           if cValue == done
                             then finish (n + 1)
@@ -332,7 +330,7 @@
                                   fill (dp `plusPtr` 3) dNext (n+3)
           withForeignPtr dfp $ \dptr -> fill dptr sptr 0
       where
-        !dlen = ((slen + 3) `div` 4) * 3
+        !dlen = (slen + 3) `div` 4 * 3
 
 x :: Integral a => a
 x = 255
@@ -405,7 +403,7 @@
 -- it's coherent. If pos & mask == 0, we're good. If not, we should fail.
 --
 sanityCheckPos :: Word32 -> Word8 -> Bool
-sanityCheckPos pos mask = ((fromIntegral pos) .&. mask) == 0
+sanityCheckPos pos mask = fromIntegral pos .&. mask == 0
 {-# INLINE sanityCheckPos #-}
 
 -- | Mask 2 bits
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.1/base64-bytestring.cabal 
new/base64-bytestring-1.2.1.0/base64-bytestring.cabal
--- old/base64-bytestring-1.2.0.1/base64-bytestring.cabal       2001-09-09 
03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.1.0/base64-bytestring.cabal       2001-09-09 
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               base64-bytestring
-version:            1.2.0.1
+version:            1.2.1.0
 synopsis:           Fast base64 encoding and decoding for ByteStrings
 description:
   This package provides support for encoding and decoding binary data 
according to @base64@ (see also <https://tools.ietf.org/html/rfc4648 RFC 4648>) 
for strict and lazy ByteStrings
@@ -31,9 +31,8 @@
    || ==8.2.2
    || ==8.4.4
    || ==8.6.5
-   || ==8.8.3
-   || ==8.10.1
-   || ==8.10.2
+   || ==8.8.4
+   || ==8.10.5
 
 extra-source-files:
   README.md

Reply via email to