diff --git a/app/src/main/jni/netguard/netguard.c b/app/src/main/jni/netguard/netguard.c index b30a2277..6bbe9658 100644 --- a/app/src/main/jni/netguard/netguard.c +++ b/app/src/main/jni/netguard/netguard.c @@ -253,7 +253,7 @@ void check_allowed(const struct arguments *args) { while (u != NULL) { int found = 0; for (int i = 0; i < args->ucount; i++) - if (u->uid == args->uids[i]) { + if (u->uid < 0 || u->uid == args->uids[i]) { found = 1; break; } @@ -268,7 +268,7 @@ void check_allowed(const struct arguments *args) { while (t != NULL) { int found = 0; for (int i = 0; i < args->ucount; i++) - if (t->uid == args->uids[i]) { + if (t->uid < 0 || t->uid == args->uids[i]) { found = 1; break; } @@ -988,12 +988,10 @@ void handle_ip(const struct arguments *args, const uint8_t *buffer, const size_t #endif // Check if allowed - jboolean - allowed = (jboolean) - !syn; - if (syn && args->filter && uid >= 0) { + jboolean allowed = (jboolean) !syn; + if (syn && args->filter) { for (int i = 0; i < args->ucount; i++) - if (args->uids[i] == uid) { + if (uid < 0 || uid == args->uids[i]) { allowed = 1; break; }