]> Kevux Git Server - fll/commitdiff
Bugfix: remove null pointer check from file stat
authorKevin Day <thekevinday@gmail.com>
Sun, 26 Apr 2020 07:14:39 +0000 (02:14 -0500)
committerKevin Day <thekevinday@gmail.com>
Sun, 26 Apr 2020 07:17:25 +0000 (02:17 -0500)
Do not assume that stat was passed as an uninitialized pointer.
In the case of passing a class by reference, the stat pointer would be non-zero.
This pointer is not dynamically allocated and therefore not an error.
The null pointer check is therefore invalid for these cases.

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

index ba11cfda4dbd67d59836b907c194fe180607db01..33d8259b476e6b8378c8696ba9e9202cd6470927 100644 (file)
@@ -292,10 +292,6 @@ extern "C" {
 
 #ifndef _di_f_file_stat_
   f_return_status f_file_stat(const f_string file_name, struct stat *file_stat) {
-    if (file_stat != 0) {
-      return f_none;
-    }
-
     if (stat(file_name, file_stat) < 0) {
       if (errno == ENAMETOOLONG || errno == EFAULT) {
         return f_status_set_error(f_invalid_name);
@@ -332,10 +328,6 @@ extern "C" {
       if (file_id <= 0) return f_status_set_error(f_invalid_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (file_stat != 0) {
-      return f_none;
-    }
-
     int result = fstatat(file_id, file_name, file_stat, flags);
     if (result < 0) {
       if (errno == ENAMETOOLONG || errno == EFAULT) {
@@ -373,10 +365,6 @@ extern "C" {
       if (file_id <= 0) return f_status_set_error(f_invalid_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (file_stat != 0) {
-      return f_none;
-    }
-
     int result = fstat(file_id, file_stat);
     if (result < 0) {
       if (errno == ENAMETOOLONG || errno == EFAULT) {
index 29c755ddff1f6c2f6705a60c8babb119e091e29d..bd345fb93b424fb67d75784b4a14f1ef59396e16 100644 (file)
@@ -382,7 +382,6 @@ extern "C" {
  *
  * @return
  *   f_none on success.
- *   f_none is returned if file_stat has a non-zero address.
  *   f_none_on_eof on success and EOF was reached.
  *   f_file_not_open (with error bit) if file is not open.
  *   f_file_error_read (with error bit) if file read failed.
@@ -407,7 +406,6 @@ extern "C" {
  *
  * @return
  *   f_none on success.
- *   f_none is returned if file_stat has a non-zero address.
  *   f_none_on_eof on success and EOF was reached.
  *   f_file_not_open (with error bit) if file is not open.
  *   f_file_error_seek (with error bit) if file seek failed.
@@ -437,7 +435,6 @@ extern "C" {
  *
  * @return
  *   f_none on success.
- *   f_none is returned if file_stat has a non-zero address.
  *   f_invalid_name (with error bit) if the name is somehow invalid.
  *   f_out_of_memory (with error bit) if out of memory.
  *   f_number_overflow (with error bit) on overflow error.