osb.st_dev != nsb.st_dev || osb.st_ino != nsb.st_ino || osb.st_rdev != nsb.st_rdev)
compare_stat(&osb, &nsb) == -1)
int safe_open (const char *path, int flags){  struct stat osb, nsb;  int fd;  if ((fd = open (path, flags, 0600)) < 0)    return fd;  /* make sure the file is not symlink */  if (lstat (path, &osb) < 0 || fstat (fd, &nsb) < 0 ||      osb.st_dev != nsb.st_dev || osb.st_ino != nsb.st_ino ||      osb.st_rdev != nsb.st_rdev)  {    dprint (1, (debugfile, "safe_open(): %s is a symlink!\n", path));    close (fd);    return (-1);  }  return (fd);}