return DL_EX_ERROR;
goto bail;
dotlock_unlink (const char *realpath){  struct stat fsb, lsb;  int fd = -1;  int i = 0;  char dummy;  if ((fd = open (realpath, O_RDONLY)) == -1)    return DL_EX_ERROR;    if ((i = fstat (fd, &fsb)) == -1)    goto bail;    if ((i = lstat (realpath, &lsb)) == -1)    goto bail;    if ((i = dotlock_check_stats (&fsb, &lsb)) == -1)    goto bail;    /*    * don't _really_ trust stat here, but actually try to read one   * character from the supposedly empty file.    */  if ((fsb.st_size == 0) && (read (fd, &dummy, 1) != 1))    unlink (realpath);    bail:    if (fd != -1)    close (fd);  return (i == 0) ?  DL_EX_OK : DL_EX_ERROR;}