From 4ca9022358cf84db98c550296ae969bceab14fa1 Mon Sep 17 00:00:00 2001 From: Aki Niemi Date: Wed, 22 Dec 2010 17:47:11 +0200 Subject: gisi: Minor style fixes --- gisi/iter.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'gisi/iter.c') diff --git a/gisi/iter.c b/gisi/iter.c index d9c111fd..a925b158 100644 --- a/gisi/iter.c +++ b/gisi/iter.c @@ -91,9 +91,9 @@ void g_isi_sb_subiter_init(GIsiSubBlockIter *outer, GIsiSubBlockIter *inner, inner->sub_blocks = len > used ? inner->start[-1] : 0; } -void g_isi_sb_subiter_init_full(GIsiSubBlockIter *outer, GIsiSubBlockIter *inner, - size_t used, gboolean longhdr, - uint16_t sub_blocks) +void g_isi_sb_subiter_init_full(GIsiSubBlockIter *outer, + GIsiSubBlockIter *inner, size_t used, + gboolean longhdr, uint16_t sub_blocks) { size_t len = g_isi_sb_iter_get_len(outer); @@ -127,14 +127,16 @@ gboolean g_isi_sb_iter_is_valid(const GIsiSubBlockIter *iter) int g_isi_sb_iter_get_id(const GIsiSubBlockIter *iter) { if (iter->longhdr) - return (iter->start[0] << 8) | (iter->start[1]); + return (iter->start[0] << 8) | iter->start[1]; + return iter->start[0]; } size_t g_isi_sb_iter_get_len(const GIsiSubBlockIter *iter) { if (iter->longhdr) - return (iter->start[2] << 8) | (iter->start[3]); + return (iter->start[2] << 8) | iter->start[3]; + return iter->start[1]; } @@ -142,7 +144,7 @@ gboolean g_isi_sb_iter_get_data(const GIsiSubBlockIter *restrict iter, void **data, unsigned pos) { if ((size_t)pos > g_isi_sb_iter_get_len(iter) - || iter->start + pos > iter->end) + || iter->start + pos > iter->end) return FALSE; *data = (void *)iter->start + pos; @@ -153,7 +155,7 @@ gboolean g_isi_sb_iter_get_byte(const GIsiSubBlockIter *restrict iter, uint8_t *byte, unsigned pos) { if ((size_t)pos > g_isi_sb_iter_get_len(iter) - || iter->start + pos > iter->end) + || iter->start + pos > iter->end) return FALSE; *byte = iter->start[pos]; @@ -208,6 +210,7 @@ gboolean g_isi_sb_iter_get_alpha_tag(const GIsiSubBlockIter *restrict iter, return FALSE; ucs2 = iter->start + pos; + if (ucs2 + len > iter->end) return FALSE; @@ -224,10 +227,14 @@ gboolean g_isi_sb_iter_get_latin_tag(const GIsiSubBlockIter *restrict iter, if (pos > g_isi_sb_iter_get_len(iter)) return FALSE; - if (latin == NULL || len == 0 || pos + len > g_isi_sb_iter_get_len(iter)) + if (latin == NULL || len == 0) + return FALSE; + + if (pos + len > g_isi_sb_iter_get_len(iter)) return FALSE; str = iter->start + pos; + if (str + len > iter->end) return FALSE; -- cgit v1.2.3