Blame io/getwd.c

Packit Service 82fcde
/* Obsolete function to get current working directory.
Packit Service 82fcde
   Copyright (C) 1991-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
   modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
   License as published by the Free Software Foundation; either
Packit Service 82fcde
   version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
   Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
   License along with the GNU C Library; if not, see
Packit Service 82fcde
   <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#include <errno.h>
Packit Service 82fcde
#include <limits.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
#include <unistd.h>
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
char *
Packit Service 82fcde
getwd (char *buf)
Packit Service 82fcde
{
Packit Service 82fcde
#ifndef PATH_MAX
Packit Service 82fcde
#define PATH_MAX 1024
Packit Service 82fcde
#endif
Packit Service 82fcde
  char tmpbuf[PATH_MAX];
Packit Service 82fcde
Packit Service 82fcde
  if (buf == NULL)
Packit Service 82fcde
    {
Packit Service 82fcde
      __set_errno (EINVAL);
Packit Service 82fcde
      return NULL;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  if (__getcwd (tmpbuf, PATH_MAX) == NULL)
Packit Service 82fcde
    {
Packit Service 82fcde
      /* We use 1024 here since it should really be enough and because
Packit Service 82fcde
	 this is a safe value.  */
Packit Service 82fcde
      __strerror_r (errno, buf, 1024);
Packit Service 82fcde
      return NULL;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  /* This is completely unsafe.  Nobody can say how big the user
Packit Service 82fcde
     provided buffer is.  Perhaps the application and the libc
Packit Service 82fcde
     disagree about the value of PATH_MAX.  */
Packit Service 82fcde
  return strcpy (buf, tmpbuf);
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
link_warning (getwd,
Packit Service 82fcde
	      "the `getwd' function is dangerous and should not be used.")