From 0b73b29383ffc357fa02452fda9dd2895f439960 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 13 May 2011 23:20:01 -0400 Subject: rt: Don't overshoot the end of the logging spec during parsing --- src/rt/rust_log.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/rt/rust_log.cpp') diff --git a/src/rt/rust_log.cpp b/src/rt/rust_log.cpp index 6152e112d00..afb7096b322 100644 --- a/src/rt/rust_log.cpp +++ b/src/rt/rust_log.cpp @@ -154,10 +154,12 @@ size_t parse_logging_spec(char* spec, log_directive* dirs) { cur = *spec; if (cur == ',' || cur == '=' || cur == '\0') { if (start == spec) {spec++; break;} - *spec = '\0'; - spec++; + if (*spec != '\0') { + *spec = '\0'; + spec++; + } size_t level = max_log_level; - if (cur == '=') { + if (cur == '=' && *spec != '\0') { level = *spec - '0'; if (level > max_log_level) level = max_log_level; if (*spec) ++spec; @@ -165,8 +167,9 @@ size_t parse_logging_spec(char* spec, log_directive* dirs) { dirs[dir].name = start; dirs[dir++].level = level; break; + } else { + spec++; } - spec++; } } return dir; -- cgit 1.4.1-3-g733a5