projects
/
project
/
luci.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5f76dad
)
libs/web: further endian fixes in lmo processing
author
Jo-Philipp Wich
<jow@openwrt.org>
Sun, 27 Jan 2013 18:18:47 +0000
(18:18 +0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Sun, 27 Jan 2013 18:18:47 +0000
(18:18 +0000)
libs/web/src/template_lmo.c
patch
|
blob
|
history
diff --git
a/libs/web/src/template_lmo.c
b/libs/web/src/template_lmo.c
index
164999e
..
27205a7
100644
(file)
--- a/
libs/web/src/template_lmo.c
+++ b/
libs/web/src/template_lmo.c
@@
-244,6
+244,7
@@
int lmo_change_catalog(const char *lang)
static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash)
{
unsigned int m, l, r;
static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash)
{
unsigned int m, l, r;
+ uint32_t k;
l = 0;
r = ar->length - 1;
l = 0;
r = ar->length - 1;
@@
-255,10
+256,12
@@
static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash)
if (r < l)
break;
if (r < l)
break;
- if (ar->index[m].key_id == hash)
+ k = ntohl(ar->index[m].key_id);
+
+ if (k == hash)
return &ar->index[m];
return &ar->index[m];
- if (
ar->index[m].key_id
> hash)
+ if (
k
> hash)
{
if (!m)
break;
{
if (!m)
break;
@@
-283,14
+286,14
@@
int lmo_translate(const char *key, int keylen, char **out, int *outlen)
if (!key || !_lmo_active_catalog)
return -2;
if (!key || !_lmo_active_catalog)
return -2;
- hash =
htonl(lmo_canon_hash(key, keylen)
);
+ hash =
lmo_canon_hash(key, keylen
);
for (ar = _lmo_active_catalog->archives; ar; ar = ar->next)
{
if ((e = lmo_find_entry(ar, hash)) != NULL)
{
for (ar = _lmo_active_catalog->archives; ar; ar = ar->next)
{
if ((e = lmo_find_entry(ar, hash)) != NULL)
{
- *out = ar->mmap +
e->offset
;
- *outlen =
e->length
;
+ *out = ar->mmap +
ntohl(e->offset)
;
+ *outlen =
ntohl(e->length)
;
return 0;
}
}
return 0;
}
}