summaryrefslogtreecommitdiff
path: root/package/davfs2/patches/patch-src_webdav_c
blob: a2a71fe051b90de2eb1df78a761d838b56bac68c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- davfs2-1.4.7.orig/src/webdav.c	2012-07-19 13:27:51.000000000 +0200
+++ davfs2-1.4.7/src/webdav.c	2014-01-01 20:14:54.000000000 +0100
@@ -21,7 +21,6 @@
 #include "config.h"
 
 #include <errno.h>
-#include <error.h>
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
@@ -52,6 +51,8 @@
 #include <sys/stat.h>
 #endif
 
+#include <regex.h>
+
 #include <ne_alloc.h>
 #include <ne_auth.h>
 #include <ne_basic.h>
@@ -1921,6 +1922,7 @@ quota_result(void *userdata, const ne_ur
 static int
 ssl_verify(void *userdata, int failures, const ne_ssl_certificate *cert)
 {
+    regex_t *re;
     char *issuer = ne_ssl_readable_dname(ne_ssl_cert_issuer(cert));
     char *subject = ne_ssl_readable_dname(ne_ssl_cert_subject(cert));
     char *digest = ne_calloc(NE_SSL_DIGESTLEN);
@@ -1967,8 +1969,13 @@ ssl_verify(void *userdata, int failures,
             len = getline(&s, &n, stdin);
             if (len < 0)
                 abort();
-            if (rpmatch(s) > 0)
-                ret = 0;
+	    if (regcomp(&re, "^[yY]", REG_EXTENDED) != 0) {
+		if (regexec(&re, s, (size_t)0, NULL, 0) < 1) {
+		        regfree(&re);
+			ret = -1;
+		}
+		ret = 0;
+	    }
             free(s);
     }