]> Kevux Git Server - fll/commitdiff
Bugfix: file change role invalid parameter on < -1.
authorKevin Day <thekevinday@gmail.com>
Fri, 21 Aug 2020 03:34:04 +0000 (22:34 -0500)
committerKevin Day <thekevinday@gmail.com>
Fri, 21 Aug 2020 03:34:04 +0000 (22:34 -0500)
Having tests for "< -1" resulted in false positives for invalid parameters.

It appears that the uid_t and gid_t types are unsigned.
The value -1 is simply a special case use.

level_0/f_file/c/file.c

index b57f85a9bac9f8bae9a4fc3a53045be51800beaa..9a61073fd081d7771e007b8f3c09522b70fa6a6c 100644 (file)
@@ -1513,8 +1513,7 @@ extern "C" {
   f_return_status f_file_role_change(const f_string path, const uid_t uid, const gid_t gid, const bool dereference) {
     #ifndef _di_level_0_parameter_checking_
       if (path == 0) return F_status_set_error(F_parameter);
-      if (uid < 0 && gid < 0) return F_status_set_error(F_parameter);
-      if (uid < -1 || gid < -1) return F_status_set_error(F_parameter);
+      if (uid == -1 && gid == -1) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
     return private_f_file_role_change(path, uid, gid, dereference);
@@ -1525,8 +1524,7 @@ extern "C" {
   f_return_status f_file_role_change_at(const int at_id, const f_string path, const uid_t uid, const gid_t gid, const int flag) {
     #ifndef _di_level_0_parameter_checking_
       if (path == 0) return F_status_set_error(F_parameter);
-      if (uid < 0 && gid < 0) return F_status_set_error(F_parameter);
-      if (uid < -1 || gid < -1) return F_status_set_error(F_parameter);
+      if (uid == -1 && gid == -1) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
     return private_f_file_role_change_at(at_id, path, uid, gid, flag);