]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_ssl/regressions/ssl-52-noconn.c
Security-57336.1.9.tar.gz
[apple/security.git] / OSX / libsecurity_ssl / regressions / ssl-52-noconn.c
diff --git a/OSX/libsecurity_ssl/regressions/ssl-52-noconn.c b/OSX/libsecurity_ssl/regressions/ssl-52-noconn.c
new file mode 100644 (file)
index 0000000..d0e329e
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  ssl-52-noconn.c
+//  libsecurity_ssl
+//
+
+#include <stdio.h>
+#include <Security/SecureTransport.h>
+#include "ssl_regressions.h"
+
+static
+OSStatus r(SSLConnectionRef connection, void *data, size_t *dataLength) {
+    return errSSLWouldBlock;
+}
+
+static
+OSStatus w(SSLConnectionRef connection, const void *data, size_t *dataLength) {
+    return errSSLWouldBlock;
+}
+
+//Testing <rdar://problem/13539215> Trivial SecureTransport example crashes on Cab, where it worked on Zin
+static
+void tests()
+{
+    OSStatus ortn;
+    SSLContextRef ctx;
+    ctx = SSLCreateContext(NULL, kSSLClientSide, kSSLStreamType);
+    SSLSetIOFuncs(ctx, r, w);
+    ortn = SSLHandshake(ctx);
+
+    is(ortn, errSSLWouldBlock, "SSLHandshake unexpected return\n");
+}
+
+
+int ssl_52_noconn(int argc, char *const *argv)
+{
+
+    plan_tests(1);
+
+    tests();
+
+    return 0;
+}