From 55cc0f415c80ad2a56280e3516d32fd75eb887e0 Mon Sep 17 00:00:00 2001 From: Ian Daniher Date: Thu, 6 Apr 2017 18:47:25 +0000 Subject: [PATCH] bump with bdecode2, which does not error on extra bytes --- bencoder.pyx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bencoder.pyx b/bencoder.pyx index ce67968..9f1ed26 100644 --- a/bencoder.pyx +++ b/bencoder.pyx @@ -88,16 +88,19 @@ for func, keys in [ decode_func[ord(key)] = func -def bdecode(bytes x): +def bdecode2(bytes x): try: r, l = decode_func[x[0]](x, 0) except (IndexError, KeyError, ValueError): raise BTFailure("not a valid bencoded string") + return r, l + +def bdecode(bytes x): + r, l = bdecode2(x) if l != len(x): raise BTFailure("invalid bencoded value (data after valid prefix)") return r - def encode(v, r): tp = type(v) if tp in encode_func: