https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78080

            Bug ID: 78080
           Summary: chown command (sys/stat.h) fail to change the owner
                    directory if the return value is not attributed to a
                    variable.
           Product: gcc
           Version: 5.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rosemberg at ymail dot com
  Target Milestone: ---

Hi,
chown command (sys/stat.h) fail to change the owner directory if the return
value is not attributed to a variable.

Supposed the directory /home/user/tochange exists and the program is running
with administrator rights and tochange owner and group is not the same like its
parent directory .

example of success code:

#include <string>
#include <iostream>
#include <sys/stat.h>

int main()
{

string sPath("/home/user/tochange");
struct stat info;

stat("/home/user",&info);

int iA = chown(sPath.c_str(), info.st_uid, info.st_gid);
cout << iA << endl;

return 0;
}


The result to iA will be 0 (success)

If I change the last 2 lines (before return 0;) to the follow code, the chown
command failed and cout will return -1 (nothing was changed):

cout << chown(sPath.c_str(), info.st_uid, info.st_gid) << endl;


it also happened with if statement.

Best regards,
M.Rosemberg

Reply via email to