sqc 0.4.13

Software Code Quality - CERT C compliance checker
/*
 * Rule: FIO19-C
 * Source: wiki
 * Status: PASS - Should NOT trigger FIO19-C violation
 */

off_t file_size;
char *buffer;
struct stat stbuf;
int fd;
 
fd = open("foo.bin", O_RDONLY);
if (fd == -1) {
  /* Handle error */
}
 
if ((fstat(fd, &stbuf) != 0) || (!S_ISREG(stbuf.st_mode))) {
  /* Handle error */
}
 
file_size = stbuf.st_size;
 
buffer = (char*)malloc(file_size);
if (buffer == NULL) {
  /* Handle error */
}

/* ... */