示例#1
0
/* ok_to_open - true if it is OK to open the file under
 *       the security model implied by secure_read_path
 *       and safe_write_path
 */
int ok_to_open(const char *filename, const char *mode)
{
    char fullname[STRMAX];
    if (index(mode, 'r')) { /* asking for read permission */
	if (secure_read_path) { /* filename must be in path */
	    find_full_path(filename, fullname);
	    if (!in_tree(fullname, secure_read_path)) return FALSE;
	}
    }
    if (index(mode, 'w')) { /* asking for write permission */
	if (safe_write_path) { /* filename must be in path */
	    find_full_path(filename, fullname);
	    if (!in_tree(fullname, safe_write_path)) return FALSE;
	}
    }
    return TRUE;
}
示例#2
0
int		do_binaries(t_info *info)
{
  if (access(info->tab_cmd[0], F_OK | X_OK) == 0)
    {
      execute(info->tab_cmd[0], info->tab_cmd);
      return (RETURN_SUCCESS);
    }
  else
    return (find_full_path(info));
  return (RETURN_ERROR);
}