From fef8314c2e018d2e35c8bd91d3181de038e44de2 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 27 Apr 2011 11:59:22 -0700 Subject: stdlib: Real fix for _uint.parse_buf(). --- src/lib/_uint.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lib/_uint.rs b/src/lib/_uint.rs index ce01dabf..97108c90 100644 --- a/src/lib/_uint.rs +++ b/src/lib/_uint.rs @@ -34,6 +34,11 @@ fn next_power_of_two(uint n) -> uint { } fn parse_buf(vec[u8] buf, uint radix) -> uint { + if (_vec.len[u8](buf) == 0u) { + log_err "parse_buf(): buf is empty"; + fail; + } + auto i = _vec.len[u8](buf) - 1u; auto power = 1u; auto n = 0u; @@ -41,7 +46,10 @@ fn parse_buf(vec[u8] buf, uint radix) -> uint { n += (((buf.(i)) - ('0' as u8)) as uint) * power; power *= radix; if (i == 0u) { ret n; } + i -= 1u; } + + fail; } fn to_str(uint num, uint radix) -> str -- cgit v1.2.3