- char* maps_name = bprintf("/proc/%d/maps", (int) getpid());
- FILE* maps = fopen(maps_name, "r");
-
- long int addr = strtol(addrs[i].c_str(), &p, 16);
+ std::string maps_name = std::string("/proc/") + std::to_string(getpid()) + "/maps";
+ FILE* maps = fopen(maps_name.c_str(), "r");
+ if (maps == nullptr) {
+ XBT_CRITICAL("fopen(\"%s\") failed: %s", maps_name.c_str(), strerror(errno));
+ continue;
+ }
+ unsigned long int addr = strtoul(addrs[i].c_str(), &p, 16);