}
+unsigned long array_to_be_integer (unsigned char *arr, int size) {
+
+ unsigned long value = 0;
+ int i, j;
+
+ for (i = size, j = 0; i > 0; i--, j++) {
+ value |= arr[j] << (CHAR_BIT * (i - 1));
+ }
+
+ return value;
+
+}
+
static void hunk_get_symbols (void *object, unsigned long bytes, long offset) {
unsigned char *pos = (unsigned char *) object + 4;
struct strtab *strtab;
- name_size = array_to_integer (pos, 4);
+ name_size = array_to_be_integer (pos, 4);
name_size *= 4;
pos = pos + 4 + name_size;
if (pos[3] != 0xEB) {
- size = array_to_integer (pos, 4);
+ size = array_to_be_integer (pos, 4);
size *= 4;
pos = pos + 4 + size;
while (1) {
- name_size = array_to_integer (pos, 4);
+ name_size = array_to_be_integer (pos, 4);
pos += 4;
if (name_size == 0) {
pos += 4;
}
- num_ref = array_to_integer (pos, 4);
+ num_ref = array_to_be_integer (pos, 4);
num_ref *= 4;
pos = pos + 4 + num_ref;
while (1) {
- size = array_to_integer (pos, 4) * 4;
+ size = array_to_be_integer (pos, 4) * 4;
pos += 4;
if (size == 0) {