Blame stdio-common/tempnam.c

Packit 6c4009
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
Packit 6c4009
/* Generate a unique temporary filename using up to five characters of
Packit 6c4009
   PFX if it is not NULL.  The directory to put this file in is
Packit 6c4009
   searched for as follows: First the environment variable "TMPDIR" is
Packit 6c4009
   checked.  If it contains the name of a directory, that directory is
Packit 6c4009
   used.  If not and if DIR is not NULL, that value is checked.  If
Packit 6c4009
   that fails, P_tmpdir is tried and finally "/tmp".  The storage for
Packit 6c4009
   the filename is allocated by `malloc'.  */
Packit 6c4009
char *
Packit 6c4009
tempnam (const char *dir, const char *pfx)
Packit 6c4009
{
Packit 6c4009
  char buf[FILENAME_MAX];
Packit 6c4009
Packit 6c4009
  if (__path_search (buf, FILENAME_MAX, dir, pfx, 1))
Packit 6c4009
    return NULL;
Packit 6c4009
Packit 6c4009
  if (__gen_tempname (buf, 0, 0, __GT_NOCREATE))
Packit 6c4009
    return NULL;
Packit 6c4009
Packit 6c4009
  return __strdup (buf);
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
link_warning (tempnam,
Packit 6c4009
	      "the use of `tempnam' is dangerous, better use `mkstemp'")