summaryrefslogtreecommitdiff
path: root/libelf/libelf_checksum.c
diff options
context:
space:
mode:
Diffstat (limited to 'libelf/libelf_checksum.c')
-rw-r--r--libelf/libelf_checksum.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libelf/libelf_checksum.c b/libelf/libelf_checksum.c
index 8f84aa4d0f05..f05f9a936404 100644
--- a/libelf/libelf_checksum.c
+++ b/libelf/libelf_checksum.c
@@ -30,7 +30,7 @@
#include "_libelf.h"
-ELFTC_VCSID("$Id: libelf_checksum.c 2225 2011-11-26 18:55:54Z jkoshy $");
+ELFTC_VCSID("$Id: libelf_checksum.c 3003 2014-03-22 07:43:10Z jkoshy $");
static unsigned long
_libelf_sum(unsigned long c, const unsigned char *s, size_t size)
@@ -44,7 +44,7 @@ _libelf_sum(unsigned long c, const unsigned char *s, size_t size)
return (c);
}
-unsigned long
+long
_libelf_checksum(Elf *e, int elfclass)
{
size_t shn;
@@ -90,11 +90,11 @@ _libelf_checksum(Elf *e, int elfclass)
d = NULL;
while ((d = elf_rawdata(scn, d)) != NULL)
checksum = _libelf_sum(checksum,
- (unsigned char *) d->d_buf, d->d_size);
+ (unsigned char *) d->d_buf, (size_t) d->d_size);
}
/*
* Return a 16-bit checksum compatible with Solaris.
*/
- return (((checksum >> 16) & 0xFFFFUL) + (checksum & 0xFFFFUL));
+ return (long) (((checksum >> 16) & 0xFFFFUL) + (checksum & 0xFFFFUL));
}