xml-basic 0.1.3.2 → 0.1.3.3
raw patch · 2 files changed
+9/−8 lines, 2 filesdep ~containers
Dependency ranges changed: containers
Files
- src/Text/XML/Basic/Entity.hs +6/−5
- xml-basic.cabal +3/−3
src/Text/XML/Basic/Entity.hs view
@@ -38,7 +38,8 @@ ds -> readBounded 10 Char.isDigit ds {- |-We fail on leading zeros in order to prevent infinite loop on @repeat '0'@.+We fail on too many leading zeros+in order to prevent infinite loop on @repeat '0'@. This function assumes that @16 * ord maxBound@ is always representable as @Int@. -} readBounded :: Int -> (Char -> Bool) -> String -> Exceptional String Int@@ -47,17 +48,17 @@ "" -> throw "empty number string" "0" -> return 0 _ ->- let m digit =+ let m pos digit = Update $ \mostSig -> let n = mostSig*base + Char.digitToInt digit in assert ("invalid character "++show digit) (validChar digit) >>- assert "leading zero not allowed for security reasons"- (not (mostSig==0 && digit=='0')) >>+ assert "too many leading zeros forbidden in order to prevent denial of service"+ (not (pos>=8 && digit=='0')) >> assert "number too big" (n <= Char.ord maxBound) >> return n- in evalUpdate (mconcat $ map m str) 0+ in evalUpdate (mconcat $ zipWith m [(0::Int)..] str) 0 newtype Update e a = Update {evalUpdate :: a -> Exceptional e a}
xml-basic.cabal view
@@ -1,6 +1,6 @@ Cabal-Version: 2.2 Name: xml-basic-Version: 0.1.3.2+Version: 0.1.3.3 License: BSD-3-Clause License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -24,7 +24,7 @@ Source-Repository this type: darcs location: http://code.haskell.org/~thielema/xml-basic/- tag: 0.1.3.2+ tag: 0.1.3.3 Library Build-Depends:@@ -32,7 +32,7 @@ data-accessor >=0.2 && <0.3, semigroups >=0.1 && <1.0, utility-ht >=0.0.13 && <0.1,- containers >=0.1 && <0.7,+ containers >=0.1 && <0.8, base >= 2 && <5 If impl(jhc) Build-Depends: