mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
Add an autoconf test and workaround for futimes(3).
Not every system provides it (e.g. uClibc-ng); if one does not, the Uppity SFTP server should now degrade sensibly to refusing attempts to set the utimes on an already-open file.
This commit is contained in:
parent
e9f0abad2e
commit
94f955fa90
@ -173,7 +173,7 @@ AC_CHECK_LIB(X11, XOpenDisplay,
|
|||||||
[GTK_LIBS="-lX11 $GTK_LIBS"
|
[GTK_LIBS="-lX11 $GTK_LIBS"
|
||||||
AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])])
|
AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])])
|
||||||
|
|
||||||
AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx fstatat dirfd])
|
AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx fstatat dirfd futimes])
|
||||||
AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
|
AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
|
||||||
AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])])
|
AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])])
|
||||||
|
|
||||||
|
@ -412,6 +412,16 @@ static void uss_fstat(SftpServer *srv, SftpReplyBuilder *reply,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !HAVE_FUTIMES
|
||||||
|
static inline int futimes(int fd, const struct timeval tv[2])
|
||||||
|
{
|
||||||
|
/* If the OS doesn't support futimes(3) then we have to pretend it
|
||||||
|
* always returns failure */
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The guts of setstat and fsetstat, macroised so that they can call
|
* The guts of setstat and fsetstat, macroised so that they can call
|
||||||
* fchown(fd,...) or chown(path,...) depending on parameters.
|
* fchown(fd,...) or chown(path,...) depending on parameters.
|
||||||
|
Loading…
Reference in New Issue
Block a user