Use a class for system properties filenames.
This avoids copy & pasting the "did we overflow the string?" logic
everywhere.
Test: treehugger
Change-Id: Icbeb2fdb050a33efc08e1bbb7e9c1e46e48319fa
diff --git a/libc/system_properties/contexts_serialized.cpp b/libc/system_properties/contexts_serialized.cpp
index 6ccd46c..f05aaa0 100644
--- a/libc/system_properties/contexts_serialized.cpp
+++ b/libc/system_properties/contexts_serialized.cpp
@@ -66,18 +66,12 @@
}
bool ContextsSerialized::MapSerialPropertyArea(bool access_rw, bool* fsetxattr_failed) {
- char filename[PROP_FILENAME_MAX];
- int len = async_safe_format_buffer(filename, sizeof(filename), "%s/properties_serial", filename_);
- if (len < 0 || len >= PROP_FILENAME_MAX) {
- serial_prop_area_ = nullptr;
- return false;
- }
-
+ PropertiesFilename filename(filename_, "properties_serial");
if (access_rw) {
- serial_prop_area_ =
- prop_area::map_prop_area_rw(filename, "u:object_r:properties_serial:s0", fsetxattr_failed);
+ serial_prop_area_ = prop_area::map_prop_area_rw(
+ filename.c_str(), "u:object_r:properties_serial:s0", fsetxattr_failed);
} else {
- serial_prop_area_ = prop_area::map_prop_area(filename);
+ serial_prop_area_ = prop_area::map_prop_area(filename.c_str());
}
return serial_prop_area_;
}