]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
CVE-2022-42898 source4/heimdal: Add bswap64()
authorNicolas Williams <nico@twosigma.com>
Thu, 21 May 2015 19:05:31 +0000 (14:05 -0500)
committerJule Anger <janger@samba.org>
Tue, 15 Nov 2022 07:18:38 +0000 (08:18 +0100)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15203

[jsutton@samba.org backported from Heimdal commit
 0271b171e5331f0f562319b887f5f0b058ecc9b4; removed changes to
 cf/roken-frag.m4 that we don't have]

source4/heimdal/lib/roken/bswap.c
source4/heimdal/lib/roken/roken.h.in
source4/heimdal/lib/roken/version-script.map

index 7f8c1c22b1b7d34a09b9782fdec1725769363f3a..b0c4248da11ee28748bf55696f1dbbe49c0798f1 100644 (file)
 #include <config.h>
 #include "roken.h"
 
+#ifndef HAVE_BSWAP64
+
+ROKEN_LIB_FUNCTION uint64_t ROKEN_LIB_CALL
+bswap64 (uint64_t val)
+{
+    return
+        (val & 0xffULL) << 56 |
+       (val & 0xff00ULL) << 40 |
+       (val & 0xff0000ULL) << 24 |
+       (val & 0xff000000ULL) << 8 |
+       (val & 0xff00000000ULL) >> 8 |
+       (val & 0xff0000000000ULL) >> 24 |
+       (val & 0xff000000000000ULL) >> 40 |
+       (val & 0xff00000000000000ULL) >> 56 ;
+}
+#endif
+
 #ifndef HAVE_BSWAP32
 
 ROKEN_LIB_FUNCTION unsigned int ROKEN_LIB_CALL
index a6299aee8e551fcc6cd44148918a4a53909bc173..13a5d943ba2e743722b198777312cd0f118e323b 100644 (file)
@@ -696,6 +696,11 @@ ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL pidfile (const char*);
 #endif
 #endif
 
+#ifndef HAVE_BSWAP64
+#define bswap64 rk_bswap64
+ROKEN_LIB_FUNCTION uint64_t ROKEN_LIB_CALL bswap64(uint64_t);
+#endif
+
 #ifndef HAVE_BSWAP32
 #define bswap32 rk_bswap32
 ROKEN_LIB_FUNCTION unsigned int ROKEN_LIB_CALL bswap32(unsigned int);
index 9229a373cd7dc1f8b2686ce65424bdfbc24a1ee7..34b42a3639f3b62f468216fef16129cbbad7f94b 100644 (file)
@@ -38,6 +38,7 @@ HEIMDAL_ROKEN_1.0 {
                rk_asprintf;
                rk_bswap16;
                rk_bswap32;
+               rk_bswap64;
                rk_cgetent;
                rk_cgetstr;
                rk_cloexec;