system/ByteOrder: new library for byte ordering / endianess
Replacing GLib macros.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "config.h" /* must be first for large file support */
|
||||
#include "Aiff.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
#include "system/ByteOrder.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
#include <glib.h>
|
||||
@@ -65,7 +66,7 @@ aiff_seek_id3(FILE *file)
|
||||
size_t size = fread(&header, sizeof(header), 1, file);
|
||||
if (size != 1 ||
|
||||
memcmp(header.id, "FORM", 4) != 0 ||
|
||||
GUINT32_FROM_BE(header.size) > (uint32_t)st.st_size ||
|
||||
FromBE32(header.size) > (uint32_t)st.st_size ||
|
||||
(memcmp(header.format, "AIFF", 4) != 0 &&
|
||||
memcmp(header.format, "AIFC", 4) != 0))
|
||||
/* not a AIFF file */
|
||||
@@ -79,7 +80,7 @@ aiff_seek_id3(FILE *file)
|
||||
if (size != 1)
|
||||
return 0;
|
||||
|
||||
size = GUINT32_FROM_BE(chunk.size);
|
||||
size = FromBE32(chunk.size);
|
||||
if (size > G_MAXINT32)
|
||||
/* too dangerous, bail out: possible integer
|
||||
underflow when casting to off_t */
|
||||
|
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "ApeLoader.hxx"
|
||||
#include "system/ByteOrder.hxx"
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
@@ -44,11 +45,11 @@ ape_scan_internal(FILE *fp, ApeTagCallback callback)
|
||||
if (fseek(fp, -(long)sizeof(footer), SEEK_END) ||
|
||||
fread(&footer, 1, sizeof(footer), fp) != sizeof(footer) ||
|
||||
memcmp(footer.id, "APETAGEX", sizeof(footer.id)) != 0 ||
|
||||
GUINT32_FROM_LE(footer.version) != 2000)
|
||||
FromLE32(footer.version) != 2000)
|
||||
return false;
|
||||
|
||||
/* find beginning of ape tag */
|
||||
size_t remaining = GUINT32_FROM_LE(footer.length);
|
||||
size_t remaining = FromLE32(footer.length);
|
||||
if (remaining <= sizeof(footer) + 10 ||
|
||||
/* refuse to load more than one megabyte of tag data */
|
||||
remaining > 1024 * 1024 ||
|
||||
@@ -66,13 +67,13 @@ ape_scan_internal(FILE *fp, ApeTagCallback callback)
|
||||
}
|
||||
|
||||
/* read tags */
|
||||
unsigned n = GUINT32_FROM_LE(footer.count);
|
||||
unsigned n = FromLE32(footer.count);
|
||||
const char *p = buffer;
|
||||
while (n-- && remaining > 10) {
|
||||
size_t size = GUINT32_FROM_LE(*(const uint32_t *)p);
|
||||
size_t size = FromLE32(*(const uint32_t *)p);
|
||||
p += 4;
|
||||
remaining -= 4;
|
||||
unsigned long flags = GUINT32_FROM_LE(*(const uint32_t *)p);
|
||||
unsigned long flags = FromLE32(*(const uint32_t *)p);
|
||||
p += 4;
|
||||
remaining -= 4;
|
||||
|
||||
|
@@ -20,6 +20,7 @@
|
||||
#include "config.h" /* must be first for large file support */
|
||||
#include "Riff.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
#include "system/ByteOrder.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
#include <glib.h>
|
||||
@@ -65,7 +66,7 @@ riff_seek_id3(FILE *file)
|
||||
size_t size = fread(&header, sizeof(header), 1, file);
|
||||
if (size != 1 ||
|
||||
memcmp(header.id, "RIFF", 4) != 0 ||
|
||||
GUINT32_FROM_LE(header.size) > (uint32_t)st.st_size)
|
||||
FromLE32(header.size) > (uint32_t)st.st_size)
|
||||
/* not a RIFF file */
|
||||
return 0;
|
||||
|
||||
@@ -77,7 +78,7 @@ riff_seek_id3(FILE *file)
|
||||
if (size != 1)
|
||||
return 0;
|
||||
|
||||
size = GUINT32_FROM_LE(chunk.size);
|
||||
size = FromLE32(chunk.size);
|
||||
if (size > G_MAXINT32)
|
||||
/* too dangerous, bail out: possible integer
|
||||
underflow when casting to off_t */
|
||||
|
Reference in New Issue
Block a user