Turn on -Wold-style-cast and fix the errors.
A couple of dodgy cases where we cast away const, but otherwise pretty boring.
Change-Id: Ibc39ebd525377792b5911464be842121c20f03b9
diff --git a/libc/bionic/stubs.cpp b/libc/bionic/stubs.cpp
index ab67935..1e487b4 100644
--- a/libc/bionic/stubs.cpp
+++ b/libc/bionic/stubs.cpp
@@ -70,7 +70,7 @@
struct passwd_state_t {
passwd passwd_;
- char app_name_buffer_[32];
+ char name_buffer_[32];
char dir_buffer_[32];
char sh_buffer_[32];
};
@@ -141,11 +141,12 @@
static passwd* android_iinfo_to_passwd(passwd_state_t* state,
const android_id_info* iinfo) {
+ snprintf(state->name_buffer_, sizeof(state->name_buffer_), "%s", iinfo->name);
snprintf(state->dir_buffer_, sizeof(state->dir_buffer_), "/");
snprintf(state->sh_buffer_, sizeof(state->sh_buffer_), "/system/bin/sh");
passwd* pw = &state->passwd_;
- pw->pw_name = (char*) iinfo->name;
+ pw->pw_name = state->name_buffer_;
pw->pw_uid = iinfo->aid;
pw->pw_gid = iinfo->aid;
pw->pw_dir = state->dir_buffer_;
@@ -153,9 +154,12 @@
return pw;
}
-static group* android_iinfo_to_group(group* gr,
+static group* android_iinfo_to_group(group_state_t* state,
const android_id_info* iinfo) {
- gr->gr_name = (char*) iinfo->name;
+ snprintf(state->group_name_buffer_, sizeof(state->group_name_buffer_), "%s", iinfo->name);
+
+ group* gr = &state->group_;
+ gr->gr_name = state->group_name_buffer_;
gr->gr_gid = iinfo->aid;
gr->gr_mem[0] = gr->gr_name;
return gr;
@@ -179,19 +183,19 @@
return NULL;
}
-static group* android_id_to_group(group* gr, unsigned id) {
+static group* android_id_to_group(group_state_t* state, unsigned id) {
for (size_t n = 0; n < android_id_count; ++n) {
if (android_ids[n].aid == id) {
- return android_iinfo_to_group(gr, android_ids + n);
+ return android_iinfo_to_group(state, android_ids + n);
}
}
return NULL;
}
-static group* android_name_to_group(group* gr, const char* name) {
+static group* android_name_to_group(group_state_t* state, const char* name) {
for (size_t n = 0; n < android_id_count; ++n) {
if (!strcmp(android_ids[n].name, name)) {
- return android_iinfo_to_group(gr, android_ids + n);
+ return android_iinfo_to_group(state, android_ids + n);
}
}
return NULL;
@@ -268,7 +272,7 @@
return 0;
}
- return (unsigned)(appid + userid*AID_USER);
+ return static_cast<unsigned>(appid + userid*AID_USER);
}
static void print_app_name_from_uid(const uid_t uid, char* buffer, const int bufferlen) {
@@ -319,7 +323,7 @@
return NULL;
}
- print_app_name_from_uid(uid, state->app_name_buffer_, sizeof(state->app_name_buffer_));
+ print_app_name_from_uid(uid, state->name_buffer_, sizeof(state->name_buffer_));
const uid_t appid = uid % AID_USER;
if (appid < AID_APP) {
@@ -331,7 +335,7 @@
snprintf(state->sh_buffer_, sizeof(state->sh_buffer_), "/system/bin/sh");
passwd* pw = &state->passwd_;
- pw->pw_name = state->app_name_buffer_;
+ pw->pw_name = state->name_buffer_;
pw->pw_dir = state->dir_buffer_;
pw->pw_shell = state->sh_buffer_;
pw->pw_uid = uid;
@@ -403,7 +407,7 @@
return NULL;
}
- group* gr = android_id_to_group(&state->group_, gid);
+ group* gr = android_id_to_group(state, gid);
if (gr != NULL) {
return gr;
}
@@ -416,7 +420,7 @@
return NULL;
}
- if (android_name_to_group(&state->group_, name) != 0) {
+ if (android_name_to_group(state, name) != 0) {
return &state->group_;
}
return app_id_to_group(app_id_from_name(name, true), state);