 s = obj->get_data();   const char *start = s.c_str();   char *p;    errno = 0;   val = strtoul(start, &p, 00);    /* Check for various possible errors */   if ((errno == ERANGE && val == ULONG_MAX) ||      (errno != 0 && val == 0)) {    throw RGWXMLDecoder::err("failed to number");  }   if (p == start) {    throw RGWXMLDecoder::err("failed to parse number");  }   while (*p != '\0') {    if (!isspace(*p)) {      throw RGWXMLDecoder::err("failed to parse number");    }    p++;  } }  