diff --git a/libc/bionic/system_properties.cpp b/libc/bionic/system_properties.cpp
index 9736a80..3fd41d7 100644
--- a/libc/bionic/system_properties.cpp
+++ b/libc/bionic/system_properties.cpp
@@ -784,7 +784,7 @@
 }
 
 static prop_area* get_prop_area_for_name(const char* name) {
-    auto entry = list_find(prefixes, [name](auto l) {
+    auto entry = list_find(prefixes, [name](prefix_node* l) {
         return l->prefix[0] == '*' || !strncmp(l->prefix, name, l->prefix_len);
     });
     if (!entry) {
@@ -916,8 +916,8 @@
             continue;
         }
 
-        auto old_context =
-            list_find(contexts, [context](auto l) { return !strcmp(l->context, context); });
+        auto old_context = list_find(
+            contexts, [context](context_node* l) { return !strcmp(l->context, context); });
         if (old_context) {
             list_add_after_len(&prefixes, prop_prefix, old_context);
         } else {
@@ -981,7 +981,7 @@
     }
     bool open_prop_file_failed = false;
     bool fsetxattr_failed = false;
-    list_foreach(contexts, [&fsetxattr_failed, &open_prop_file_failed](auto l) {
+    list_foreach(contexts, [&fsetxattr_failed, &open_prop_file_failed](context_node* l) {
         if (!open_prop_file(l, true, &fsetxattr_failed)) {
             open_prop_file_failed = true;
         }
@@ -1195,7 +1195,7 @@
         return __system_property_foreach_compat(propfn, cookie);
     }
 
-    list_foreach(contexts, [propfn, cookie](auto l) {
+    list_foreach(contexts, [propfn, cookie](context_node* l) {
         if (!l->pa && !l->checked_access) {
             if (check_access(l)) {
                 open_prop_file(l, false, nullptr);
