diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-12 11:15:15 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-12 11:15:15 +0200 |
commit | aef79164ae10e13c882ce2e10905809d16b85b09 (patch) | |
tree | 3ade3038667a84bfc33976d288b2edd951246b25 /Include/fileutils.h | |
parent | f52cb397c583d106875f30d61ed323e50f18a389 (diff) | |
parent | 3d12c5b8e36f281af3dda150def4e1eb7a3b3269 (diff) | |
download | cpython-aef79164ae10e13c882ce2e10905809d16b85b09.tar.gz |
Issue #22928: Disabled HTTP header injections in http.client.
Original patch by Demian Brecht.
Diffstat (limited to 'Include/fileutils.h')
-rw-r--r-- | Include/fileutils.h | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/Include/fileutils.h b/Include/fileutils.h index e9bad80b87..95632edb11 100644 --- a/Include/fileutils.h +++ b/Include/fileutils.h @@ -7,11 +7,11 @@ extern "C" { PyAPI_FUNC(PyObject *) _Py_device_encoding(int); -PyAPI_FUNC(wchar_t *) _Py_char2wchar( +PyAPI_FUNC(wchar_t *) Py_DecodeLocale( const char *arg, size_t *size); -PyAPI_FUNC(char*) _Py_wchar2char( +PyAPI_FUNC(char*) Py_EncodeLocale( const wchar_t *text, size_t *error_pos); @@ -21,11 +21,42 @@ PyAPI_FUNC(int) _Py_wstat( struct stat *buf); #endif +#ifndef Py_LIMITED_API +#if defined(HAVE_FSTAT) || defined(MS_WINDOWS) + +#ifdef MS_WINDOWS +struct _Py_stat_struct { + unsigned long st_dev; + __int64 st_ino; + unsigned short st_mode; + int st_nlink; + int st_uid; + int st_gid; + unsigned long st_rdev; + __int64 st_size; + time_t st_atime; + int st_atime_nsec; + time_t st_mtime; + int st_mtime_nsec; + time_t st_ctime; + int st_ctime_nsec; + unsigned long st_file_attributes; +}; +#else +# define _Py_stat_struct stat +#endif + +PyAPI_FUNC(int) _Py_fstat( + int fd, + struct _Py_stat_struct *stat); +#endif /* HAVE_FSTAT || MS_WINDOWS */ +#endif /* Py_LIMITED_API */ + #ifdef HAVE_STAT PyAPI_FUNC(int) _Py_stat( PyObject *path, struct stat *statbuf); -#endif +#endif /* HAVE_STAT */ #ifndef Py_LIMITED_API PyAPI_FUNC(int) _Py_open( @@ -70,8 +101,27 @@ PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable, int *atomic_flag_works); PyAPI_FUNC(int) _Py_dup(int fd); + +#ifndef MS_WINDOWS +PyAPI_FUNC(int) _Py_get_blocking(int fd); + +PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking); +#endif /* !MS_WINDOWS */ + +#if defined _MSC_VER && _MSC_VER >= 1400 +/* A routine to check if a file descriptor is valid on Windows. Returns 0 + * and sets errno to EBADF if it isn't. This is to avoid Assertions + * from various functions in the Windows CRT beginning with + * Visual Studio 2005 + */ +int _PyVerify_fd(int fd); + +#else +#define _PyVerify_fd(A) (1) /* dummy */ #endif +#endif /* Py_LIMITED_API */ + #ifdef __cplusplus } #endif |