projects
/
oweals
/
opkg-lede.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libopkg: fix hex encoding/decoding, add checksum getter/setter
[oweals/opkg-lede.git]
/
libopkg
/
file_util.c
diff --git
a/libopkg/file_util.c
b/libopkg/file_util.c
index 912b147ad306766f6275e93a3b9860de81b29242..155d73b52be1ac81d88ebfd851c50c98ede6f012 100644
(file)
--- a/
libopkg/file_util.c
+++ b/
libopkg/file_util.c
@@
-231,8
+231,9
@@
char *file_sha256sum_alloc(const char *file_name)
char *checksum_bin2hex(const char *src, size_t len)
{
char *checksum_bin2hex(const char *src, size_t len)
{
- char *p;
- static char buf[65];
+ unsigned char *p;
+ static unsigned char buf[65];
+ const unsigned char *s = (unsigned char *)src;
static const unsigned char bin2hex[16] = {
'0', '1', '2', '3',
'4', '5', '6', '7',
static const unsigned char bin2hex[16] = {
'0', '1', '2', '3',
'4', '5', '6', '7',
@@
-243,21
+244,22
@@
char *checksum_bin2hex(const char *src, size_t len)
if (len > 32)
return NULL;
if (len > 32)
return NULL;
- for (p = buf; len > 0; s
rc
++, len--) {
- *p++ = bin2hex[*s
rc
/ 16];
- *p++ = bin2hex[*s
rc
% 16];
+ for (p = buf; len > 0; s++, len--) {
+ *p++ = bin2hex[*s / 16];
+ *p++ = bin2hex[*s % 16];
}
*p = 0;
}
*p = 0;
- return buf;
+ return
(char *)
buf;
}
char *checksum_hex2bin(const char *src, size_t *len)
{
}
char *checksum_hex2bin(const char *src, size_t *len)
{
- char *p;
size_t slen;
size_t slen;
- static char buf[32];
+ unsigned char *p;
+ const unsigned char *s = (unsigned char *)src;
+ static unsigned char buf[32];
while (isspace(*src))
src++;
while (isspace(*src))
src++;
@@
-273,11
+275,11
@@
char *checksum_hex2bin(const char *src, size_t *len)
(c >= 'a' ? (c - 'a') : (c >= 'A' ? (c - 'A') : (c - '0')))
for (p = buf, *len = 0;
(c >= 'a' ? (c - 'a') : (c >= 'A' ? (c - 'A') : (c - '0')))
for (p = buf, *len = 0;
- slen > 0 && isxdigit(s
rc[0]) && isxdigit(src
[1]);
- slen--, s
rc
+= 2, (*len)++)
- *p++ = hex(s
rc[0]) * 16 + hex(src
[1]);
+ slen > 0 && isxdigit(s
[0]) && isxdigit(s
[1]);
+ slen--, s += 2, (*len)++)
+ *p++ = hex(s
[0]) * 16 + hex(s
[1]);
- return buf;
+ return
(char *)
buf;
}
int rm_r(const char *path)
}
int rm_r(const char *path)