aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2019-07-28 19:03:27 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2019-07-28 19:10:47 +0900
commit856d0511d63bd791b4a18df0c3ffc80b8e47c470 (patch)
tree09ca2423dc45ffd4fc21982de10dc19f877a5329
parent0e3d93fc1d008d7561e97ceccc35f092e5fc0f36 (diff)
downloadportable-856d0511d63bd791b4a18df0c3ffc80b8e47c470.tar.gz
portable-856d0511d63bd791b4a18df0c3ffc80b8e47c470.tar.bz2
portable-856d0511d63bd791b4a18df0c3ffc80b8e47c470.zip
Use posix_win.c functions on WIN32
- read() returns bytes count as 1 for crlf unless binary mode isn't specified with open(). Reported by @ulfworsoe in libressl-portable#542 - err could be WSANOTINITIALISED when WSAStartup() is not called
-rw-r--r--crypto/compat/posix_win.c9
-rw-r--r--patches/keypairtest.c.patch13
-rw-r--r--patches/tls_config.c.patch25
-rw-r--r--patches/tls_util.c.patch25
4 files changed, 6 insertions, 66 deletions
diff --git a/crypto/compat/posix_win.c b/crypto/compat/posix_win.c
index b73f023..4b4b5f5 100644
--- a/crypto/compat/posix_win.c
+++ b/crypto/compat/posix_win.c
@@ -162,7 +162,8 @@ posix_close(int fd)
162{ 162{
163 if (closesocket(fd) == SOCKET_ERROR) { 163 if (closesocket(fd) == SOCKET_ERROR) {
164 int err = WSAGetLastError(); 164 int err = WSAGetLastError();
165 return (err == WSAENOTSOCK || err == WSAEBADF) ? 165 return (err == WSAENOTSOCK || err == WSAEBADF ||
166 err == WSANOTINITIALISED) ?
166 close(fd) : wsa_errno(err); 167 close(fd) : wsa_errno(err);
167 } 168 }
168 return 0; 169 return 0;
@@ -174,7 +175,8 @@ posix_read(int fd, void *buf, size_t count)
174 ssize_t rc = recv(fd, buf, count, 0); 175 ssize_t rc = recv(fd, buf, count, 0);
175 if (rc == SOCKET_ERROR) { 176 if (rc == SOCKET_ERROR) {
176 int err = WSAGetLastError(); 177 int err = WSAGetLastError();
177 return (err == WSAENOTSOCK || err == WSAEBADF) ? 178 return (err == WSAENOTSOCK || err == WSAEBADF ||
179 err == WSANOTINITIALISED) ?
178 read(fd, buf, count) : wsa_errno(err); 180 read(fd, buf, count) : wsa_errno(err);
179 } 181 }
180 return rc; 182 return rc;
@@ -186,7 +188,8 @@ posix_write(int fd, const void *buf, size_t count)
186 ssize_t rc = send(fd, buf, count, 0); 188 ssize_t rc = send(fd, buf, count, 0);
187 if (rc == SOCKET_ERROR) { 189 if (rc == SOCKET_ERROR) {
188 int err = WSAGetLastError(); 190 int err = WSAGetLastError();
189 return (err == WSAENOTSOCK || err == WSAEBADF) ? 191 return (err == WSAENOTSOCK || err == WSAEBADF ||
192 err == WSANOTINITIALISED) ?
190 write(fd, buf, count) : wsa_errno(err); 193 write(fd, buf, count) : wsa_errno(err);
191 } 194 }
192 return rc; 195 return rc;
diff --git a/patches/keypairtest.c.patch b/patches/keypairtest.c.patch
deleted file mode 100644
index b1f03da..0000000
--- a/patches/keypairtest.c.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1--- tests/keypairtest.c.orig Sun Mar 18 00:31:20 2018
2+++ tests/keypairtest.c Sun Mar 18 00:31:33 2018
3@@ -15,6 +15,10 @@
4 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
5 */
6
7+#ifdef _MSC_VER
8+#define NO_REDEF_POSIX_FUNCTIONS
9+#endif
10+
11 #include <sys/stat.h>
12
13 #include <err.h>
diff --git a/patches/tls_config.c.patch b/patches/tls_config.c.patch
deleted file mode 100644
index cd9817c..0000000
--- a/patches/tls_config.c.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1--- tls/tls_config.c.orig Fri Jul 26 22:16:53 2019
2+++ tls/tls_config.c Fri Jul 26 22:21:25 2019
3@@ -15,6 +15,10 @@
4 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
5 */
6
7+#ifdef _MSC_VER
8+#define NO_REDEF_POSIX_FUNCTIONS
9+#endif
10+
11 #include <sys/stat.h>
12
13 #include <ctype.h>
14@@ -48,7 +52,11 @@ tls_config_load_file(struct tls_error *error, const ch
15 *buf = NULL;
16 *len = 0;
17
18+#ifndef _WIN32
19 if ((fd = open(filename, O_RDONLY)) == -1) {
20+#else
21+ if ((fd = open(filename, O_RDONLY | O_BINARY)) == -1) {
22+#endif
23 tls_error_set(error, "failed to open %s file '%s'",
24 filetype, filename);
25 goto err;
diff --git a/patches/tls_util.c.patch b/patches/tls_util.c.patch
deleted file mode 100644
index 9f57d83..0000000
--- a/patches/tls_util.c.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1--- tls/tls_util.c.orig Fri Jul 26 22:17:04 2019
2+++ tls/tls_util.c Fri Jul 26 22:21:22 2019
3@@ -17,6 +17,10 @@
4 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
5 */
6
7+#ifdef _MSC_VER
8+#define NO_REDEF_POSIX_FUNCTIONS
9+#endif
10+
11 #include <sys/stat.h>
12
13 #include <stdlib.h>
14@@ -161,7 +165,11 @@ tls_load_file(const char *name, size_t *len, char *pas
15
16 *len = 0;
17
18+#ifndef _WIN32
19 if ((fd = open(name, O_RDONLY)) == -1)
20+#else
21+ if ((fd = open(name, O_RDONLY | O_BINARY)) == -1)
22+#endif
23 return (NULL);
24
25 /* Just load the file into memory without decryption */