diff options
Diffstat (limited to 'main/wine/dn_skipname.patch')
-rw-r--r-- | main/wine/dn_skipname.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/main/wine/dn_skipname.patch b/main/wine/dn_skipname.patch new file mode 100644 index 000000000..99ecf8315 --- /dev/null +++ b/main/wine/dn_skipname.patch @@ -0,0 +1,38 @@ +--- ./dlls/dnsapi/ns_parse.c.orig ++++ ./dlls/dnsapi/ns_parse.c +@@ -69,6 +69,35 @@ + } while (0) + + /* Public. */ ++#ifdef __UCLIBC__ ++int ++dn_skipname(const u_char *comp_dn, const u_char *eom) ++{ ++ const u_char *cp; ++ int n; ++ ++ cp = comp_dn; ++ while (cp < eom && (n = *cp++)) { ++ /* ++ * check for indirection ++ */ ++ switch (n & INDIR_MASK) { ++ case 0: /* normal case, n == len */ ++ cp += n; ++ continue; ++ case INDIR_MASK: /* indirection */ ++ cp++; ++ break; ++ default: /* illegal type */ ++ return (-1); ++ } ++ break; ++ } ++ if (cp > eom) ++ return (-1); ++ return (cp - comp_dn); ++} ++#endif + + static int + dns_ns_skiprr(const u_char *ptr, const u_char *eom, ns_sect section, int count) { |