]> Kevux Git Server - fll/commitdiff
Update: Relax the uid/gid requirements in f_file_role_change* functions.
authorKevin Day <thekevinday@gmail.com>
Sun, 27 Feb 2022 23:22:06 +0000 (17:22 -0600)
committerKevin Day <thekevinday@gmail.com>
Sun, 27 Feb 2022 23:22:06 +0000 (17:22 -0600)
Be less picky.
If both ID's are not available, then return F_data_not rather than an error.

level_0/f_file/c/file.c
level_0/f_file/c/file.h

index 513d1a4f71da22be486e273c68ebe6120c8cfe6d..e5a60acd84a8f29eb6796c9f38d9f6de48580405 100644 (file)
@@ -1770,11 +1770,8 @@ extern "C" {
 
 #ifndef _di_f_file_role_change_
   f_status_t f_file_role_change(const f_string_static_t path, const uid_t uid, const gid_t gid, const bool dereference) {
-    #ifndef _di_level_0_parameter_checking_
-      if (uid == -1 && gid == -1) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
 
-    if (!path.used) {
+    if (uid == -1 && gid == -1 || !path.used) {
       return F_data_not;
     }
 
@@ -1784,9 +1781,10 @@ extern "C" {
 
 #ifndef _di_f_file_role_change_at_
   f_status_t f_file_role_change_at(const int at_id, const f_string_static_t path, const uid_t uid, const gid_t gid, const int flag) {
-    #ifndef _di_level_0_parameter_checking_
-      if (uid == -1 && gid == -1) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
+
+    if (uid == -1 && gid == -1) {
+      return F_data_not;
+    }
 
     return private_f_file_role_change_at(at_id, path, uid, gid, flag);
   }
index 7075dc44ba9be92e63f343467e273367db7b7c67..73c4b655e69b4f934e5e0a2c6adcbe9680f325a2 100644 (file)
@@ -1648,8 +1648,6 @@ extern "C" {
 /**
  * Change owner and/or group of a given file at the specified path.
  *
- * At least one of uid or gid must not be -1.
- *
  * @param path
  *   The path file name.
  * @param uid
@@ -1664,6 +1662,7 @@ extern "C" {
  *
  * @return
  *   F_none on success.
+ *   F_data_not if either both uid and gid are -1 or path.used is 0.
  *
  *   F_access_denied (with error bit) on access denied.
  *   F_access_group (with error bit) if the current user does not have access to assign the specified group.
@@ -1689,8 +1688,6 @@ extern "C" {
 /**
  * Change owner and/or group of a given file at the specified path.
  *
- * At least one of uid or gid must not be -1.
- *
  * @param at_id
  *   The parent directory, as an open directory file descriptor, in which path is relative to.
  * @param path
@@ -1706,6 +1703,7 @@ extern "C" {
  *
  * @return
  *   F_none on success.
+ *   F_data_not if either both uid and gid are -1 or path.used is 0.
  *
  *   F_access_denied (with error bit) on access denied.
  *   F_access_group (with error bit) if the current user does not have access to assign the specified group.