Codebase list cyrus-sasl2 / 33c2d91
Fix failures when the host have broken hostname (Closes: #683555) Ondřej Surý 11 years ago
2 changed file(s) with 60 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 --- a/lib/saslutil.c
1 +++ b/lib/saslutil.c
2 @@ -555,32 +555,44 @@ int get_fqhostname(
3 NULL, /* don't care abour service/port */
4 &hints,
5 &result) != 0) {
6 - /* errno on Unix, WSASetLastError on Windows are already done by the function */
7 - return (-1);
8 + if (abort_if_no_fqdn) {
9 + /* errno on Unix, WSASetLastError on Windows are already done by the function */
10 + return (-1);
11 + } else {
12 + goto LOWERCASE;
13 + }
14 }
15
16 - if (abort_if_no_fqdn && (result == NULL || result->ai_canonname == NULL)) {
17 + if (result == NULL || result->ai_canonname == NULL) {
18 freeaddrinfo (result);
19 + if (abort_if_no_fqdn) {
20 #ifdef WIN32
21 - WSASetLastError (WSANO_DATA);
22 + WSASetLastError (WSANO_DATA);
23 #elif defined(ENODATA)
24 - errno = ENODATA;
25 + errno = ENODATA;
26 #elif defined(EADDRNOTAVAIL)
27 - errno = EADDRNOTAVAIL;
28 + errno = EADDRNOTAVAIL;
29 #endif
30 - return (-1);
31 + return (-1);
32 + } else {
33 + goto LOWERCASE;
34 + }
35 }
36
37 - if (abort_if_no_fqdn && strchr (result->ai_canonname, '.') == NULL) {
38 + if (strchr (result->ai_canonname, '.') == NULL) {
39 freeaddrinfo (result);
40 + if (abort_if_no_fqdn) {
41 #ifdef WIN32
42 - WSASetLastError (WSANO_DATA);
43 + WSASetLastError (WSANO_DATA);
44 #elif defined(ENODATA)
45 - errno = ENODATA;
46 + errno = ENODATA;
47 #elif defined(EADDRNOTAVAIL)
48 - errno = EADDRNOTAVAIL;
49 + errno = EADDRNOTAVAIL;
50 #endif
51 - return (-1);
52 + return (-1);
53 + } else {
54 + goto LOWERCASE;
55 + }
56 }
57
58
2020 0034-fix_dovecot_authentication.patch
2121 0035-temporary_multiarch_fixes.patch
2222 0036-add-reference-to-LDAP_SASLAUTHD-file.patch
23 0037-abort_if_no_fqdn_fix.patch