tor_vsscanf() returns -1 if '%%' doesn't match a '%'.

tor_vsscanf() returns -1 if '%%' doesn't match a '%', but tor_vsscanf() is supposed to return -1 only on malformed patterns.

tor_vsscanf() should return n_matched in this case.

      } else if (*pattern == '%') {
        if (*buf != '%')
          return -1;
        ++buf;
        ++pattern;