View | Details | Raw Unified | Return to bug 3548 | Differences between
and this patch

Collapse All | Expand All

(-)a/openbsd-compat/openssl-compat.c (-10 / +17 lines)
Lines 48-68 ssh_compatible_openssl(long headerver, long libver) Link Here
48
	if (headerver == libver)
48
	if (headerver == libver)
49
		return 1;
49
		return 1;
50
50
51
	/* for versions < 1.0.0, major,minor,fix,status must match */
52
	if (headerver < 0x1000000f) {
53
		mask = 0xfffff00fL; /* major,minor,fix,status */
54
		return (headerver & mask) == (libver & mask);
55
	}
56
57
	/*
51
	/*
58
	 * For versions >= 1.0.0, major,minor,status must match and library
52
	 * For versions < 3.0.0, major,minor,status must match and library
59
	 * fix version must be equal to or newer than the header.
53
	 * fix version must be equal to or newer than the header.
60
	 */
54
	 */
61
	mask = 0xfff0000fL; /* major,minor,status */
55
	if (headerver < 0x3000000f) {
62
	hfix = (headerver & 0x000ff000) >> 12;
56
		mask = 0xfff0000fL; /* major,minor,status */
63
	lfix = (libver & 0x000ff000) >> 12;
57
		hfix = (headerver & 0x000ff000) >> 12;
58
		lfix = (libver & 0x000ff000) >> 12;
59
		if ( (headerver & mask) == (libver & mask) && lfix >= hfix)
60
			return 1;
61
	}
62
63
	/*
64
	 * For versions >= 3.0.0, major must match and minor,status must be
65
	 * equal to or greater than the header.
66
	 */
67
	mask = 0xf000000fL; /* major, status */
68
	hfix = (headerver & 0x0ffffff0L) >> 12;
69
	lfix = (libver & 0x0ffffff0L) >> 12;
64
	if ( (headerver & mask) == (libver & mask) && lfix >= hfix)
70
	if ( (headerver & mask) == (libver & mask) && lfix >= hfix)
65
		return 1;
71
		return 1;
72
66
	return 0;
73
	return 0;
67
}
74
}
68
75

Return to bug 3548