Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 26 Nov 2014 19:32:42 +0000
From: Fiedler Roman <Roman.Fiedler@....ac.at>
To: "oss-security@...ts.openwall.com" <oss-security@...ts.openwall.com>
Subject: AW: O_CREAT|O_DIRECTORY on nonexisting file expected
 behaviour?

> Von: Matthew Daley [mailto:mattd@...fuzz.com]
>
> On Thu, Nov 27, 2014 at 4:28 AM, Fiedler Roman <Roman.Fiedler@....ac.at>
> wrote:
> > (...)
> > My test program was:
> >
> > #include <fcntl.h>
> > #include <stdio.h>
> > #include <sys/stat.h>
> >
> > int main(int argc, char **argv) {
> >   int fd;
> >   struct stat statBuf;
> >   int result;
> >
> >   fd=open("xxx", O_RDWR|O_CREAT|O_DIRECTORY, 0600);
> >   result=fstat(fd, &statBuf);
> >   if(result) {
> >     fprintf(stderr, "Stat failed\n");
> >     return(1);
> >   }
> >   fprintf(stderr, "New element type is %d\n", S_ISDIR(fd));
>
> FWIW, this should probably be S_ISDIR(statBuf.st_mode).

You are completely right, how stupid to miss that. I did not challenge the 
result, since it was the same as with "ls -al".

Also with S_ISDIR(statBuf.st_mode), result is the same, at least on my side.



#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>

int main(int argc, char **argv) {
  int fd;
  struct stat statBuf;
  int result;

  fd=open("xxx", O_RDWR|O_CREAT|O_DIRECTORY, 0600);
  result=fstat(fd, &statBuf);
  if(result) {
    fprintf(stderr, "Stat failed\n");
    return(1);
  }
  fprintf(stderr, "New element type is %d\n", S_ISDIR(statBuf.st_mode));
  return(0);
}


$ ./test
New element type is 0

Download attachment "smime.p7s" of type "application/pkcs7-signature" (6344 bytes)

Powered by blists - more mailing lists

Your e-mail address:

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.