mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-06-28 15:39:02 +08:00
Remove uses of ntohl
This commit is contained in:
parent
398d46577a
commit
fe77bc5c8e
@ -90,8 +90,6 @@ AC_SUBST(LFLAGS)
|
||||
CFLAGS="$CFLAGS -Wall -Werror"
|
||||
AS_CASE([$host],
|
||||
[*mingw*|*cygwin*], [LDFLAGS="$LDFLAGS -no-undefined"], [])
|
||||
AS_CASE([$host],
|
||||
[*mingw*], [LDFLAGS="$LDFLAGS -lWs2_32"], [])
|
||||
|
||||
dnl Fuzz testing
|
||||
|
||||
|
@ -26,13 +26,6 @@
|
||||
#include <inttypes.h>
|
||||
#include <strings.h>
|
||||
|
||||
// for ntohl
|
||||
#ifdef _WIN32
|
||||
#include <winsock.h>
|
||||
#else
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
typedef uint16_t guint16;
|
||||
typedef uint32_t guint32;
|
||||
typedef uint64_t guint64;
|
||||
@ -132,14 +125,7 @@ typedef struct GOptionContext {
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define GUINT16_FROM_LE(l) (uint16_t)l
|
||||
#define GUINT32_FROM_LE(l) (uint32_t)l
|
||||
#define GUINT64_FROM_LE(l) (uint64_t)l
|
||||
#define GINT32_FROM_LE(l) (uint32_t)l
|
||||
#define GINT32_FROM_BE(l) (int32_t)ntohl(l)
|
||||
#define GUINT32_SWAP_LE_BE(l) (uint32_t)ntohl(l)
|
||||
#define GINT32_TO_LE(l) (int32_t)l
|
||||
#define GINT32_TO_BE(l) (int32_t)ntohl(l)
|
||||
#define GUINT32_SWAP_LE_BE(l) __builtin_bswap32((uint32_t)(l))
|
||||
|
||||
/* string functions */
|
||||
void *g_memdup(const void *src, size_t len);
|
||||
|
@ -405,9 +405,8 @@ unsigned char mdb_pg_get_byte(MdbHandle *mdb, int offset)
|
||||
|
||||
int mdb_get_int16(void *buf, int offset)
|
||||
{
|
||||
guint16 l;
|
||||
memcpy(&l, (char*)buf + offset, 2);
|
||||
return (int)GUINT16_FROM_LE(l);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
return u8_buf[0] + (u8_buf[1] << 8);
|
||||
}
|
||||
int mdb_pg_get_int16(MdbHandle *mdb, int offset)
|
||||
{
|
||||
@ -418,15 +417,13 @@ int mdb_pg_get_int16(MdbHandle *mdb, int offset)
|
||||
|
||||
long mdb_get_int32_msb(void *buf, int offset)
|
||||
{
|
||||
gint32 l;
|
||||
memcpy(&l, (char*)buf + offset, 4);
|
||||
return (long)GINT32_FROM_BE(l);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
return (u8_buf[0] << 24) + (u8_buf[1] << 16) + (u8_buf[2] << 8) + u8_buf[3];
|
||||
}
|
||||
long mdb_get_int32(void *buf, int offset)
|
||||
{
|
||||
gint32 l;
|
||||
memcpy(&l, (char*)buf + offset, 4);
|
||||
return (long)GINT32_FROM_LE(l);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
return u8_buf[0] + (u8_buf[1] << 8) + (u8_buf[2] << 16) + (u8_buf[3] << 24);
|
||||
}
|
||||
long mdb_pg_get_int32(MdbHandle *mdb, int offset)
|
||||
{
|
||||
@ -438,8 +435,8 @@ long mdb_pg_get_int32(MdbHandle *mdb, int offset)
|
||||
float mdb_get_single(void *buf, int offset)
|
||||
{
|
||||
union {guint32 g; float f;} f;
|
||||
memcpy(&f, (char*)buf + offset, 4);
|
||||
f.g = GUINT32_FROM_LE(f.g);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
f.g = u8_buf[0] + (u8_buf[1] << 8) + (u8_buf[2] << 16) + (u8_buf[3] << 24);
|
||||
return f.f;
|
||||
}
|
||||
float mdb_pg_get_single(MdbHandle *mdb, int offset)
|
||||
@ -452,8 +449,10 @@ float mdb_pg_get_single(MdbHandle *mdb, int offset)
|
||||
double mdb_get_double(void *buf, int offset)
|
||||
{
|
||||
union {guint64 g; double d;} d;
|
||||
memcpy(&d, (char*)buf + offset, 8);
|
||||
d.g = GUINT64_FROM_LE(d.g);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
d.g = u8_buf[0] + (u8_buf[1] << 8) + (u8_buf[2] << 16) + (u8_buf[3] << 24) +
|
||||
((guint64)u8_buf[4] << 32) + ((guint64)u8_buf[5] << 40) +
|
||||
((guint64)u8_buf[6] << 48) + ((guint64)u8_buf[7] << 56);
|
||||
return d.d;
|
||||
}
|
||||
double mdb_pg_get_double(MdbHandle *mdb, int offset)
|
||||
|
@ -26,8 +26,9 @@ static int mdb_add_row_to_leaf_pg(MdbTableDef *table, MdbIndex *idx, MdbIndexPag
|
||||
void
|
||||
mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
||||
{
|
||||
value = GINT32_TO_LE(value);
|
||||
memcpy((char*)buf + offset, &value, 2);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
u8_buf[0] = (value & 0xFF);
|
||||
u8_buf[1] = (value >> 8) & 0xFF;
|
||||
}
|
||||
void
|
||||
_mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
||||
@ -40,8 +41,11 @@ __attribute__((alias("mdb_put_int16")));
|
||||
void
|
||||
mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||
{
|
||||
value = GINT32_TO_LE(value);
|
||||
memcpy((char*)buf + offset, &value, 4);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
u8_buf[0] = (value & 0xFF);
|
||||
u8_buf[1] = (value >> 8) & 0xFF;
|
||||
u8_buf[2] = (value >> 16) & 0xFF;
|
||||
u8_buf[3] = (value >> 24) & 0xFF;
|
||||
}
|
||||
void
|
||||
_mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||
@ -54,8 +58,11 @@ __attribute__((alias("mdb_put_int32")));
|
||||
void
|
||||
mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
|
||||
{
|
||||
value = GINT32_TO_BE(value);
|
||||
memcpy((char*)buf + offset, &value, 4);
|
||||
unsigned char *u8_buf = (unsigned char *)buf + offset;
|
||||
u8_buf[3] = (value & 0xFF);
|
||||
u8_buf[2] = (value >> 8) & 0xFF;
|
||||
u8_buf[1] = (value >> 16) & 0xFF;
|
||||
u8_buf[0] = (value >> 24) & 0xFF;
|
||||
}
|
||||
void
|
||||
_mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value)
|
||||
|
Loading…
Reference in New Issue
Block a user