From 03072b0891e7d96690a6299864f6a738ae54038f Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 8 Jun 2009 15:03:38 -0400 Subject: [PATCH] Export the decode_index function from the upkg library. --- src/libupkg.c | 18 +++++++++--------- src/upkg.h | 2 ++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/libupkg.c b/src/libupkg.c index e2bcf29..0dc2ade 100644 --- a/src/libupkg.c +++ b/src/libupkg.c @@ -62,7 +62,7 @@ struct upkg_private { * Stores the result in *val and returns the number of input bytes read (or 0 * if the input is invalid, in which case *val is undefined). */ -static size_t decode_index(long *val, unsigned char *bytes, size_t n) +size_t upkg_decode_index(long *val, unsigned char *bytes, size_t n) { size_t i = 0; @@ -214,11 +214,11 @@ static int pkg_init_exports(struct upkg *pkg) } len = 0; - rc = decode_index(&export->class, buf+len, nbuf-len); + rc = upkg_decode_index(&export->class, buf+len, nbuf-len); if (rc == 0) goto err; len += rc; - rc = decode_index(&export->super, buf+len, nbuf-len); + rc = upkg_decode_index(&export->super, buf+len, nbuf-len); if (rc == 0) goto err; len += rc; @@ -226,7 +226,7 @@ static int pkg_init_exports(struct upkg *pkg) export->package = unpack_32_le(buf+len); len += 4; - rc = decode_index(&tmp, buf+len, nbuf-len); + rc = upkg_decode_index(&tmp, buf+len, nbuf-len); if (rc == 0 || tmp < 0 || tmp >= pkg->name_count) goto err; export->name = pkg->priv->names[tmp].name; len += rc; @@ -235,12 +235,12 @@ static int pkg_init_exports(struct upkg *pkg) export->flags = unpack_32_le(buf+len); len += 4; - rc = decode_index(&export->size, buf+len, nbuf-len); + rc = upkg_decode_index(&export->size, buf+len, nbuf-len); if (rc == 0) goto err; len += rc; if (export->size) { - rc = decode_index(&export->offset, buf+len, nbuf-len); + rc = upkg_decode_index(&export->offset, buf+len, nbuf-len); if (rc == 0) goto err; len += rc; } @@ -282,12 +282,12 @@ static int pkg_init_imports(struct upkg *pkg) } len = 0; - rc = decode_index(&tmp, buf+len, nbuf-len); + rc = upkg_decode_index(&tmp, buf+len, nbuf-len); if (rc == 0 || len < 0 || len >= pkg->name_count) goto err; import->class_package = pkg->priv->names[tmp].name; len += rc; - rc = decode_index(&tmp, buf+len, nbuf-len); + rc = upkg_decode_index(&tmp, buf+len, nbuf-len); if (rc == 0 || len < 0 || len >= pkg->name_count) goto err; import->class_name = pkg->priv->names[tmp].name; len += rc; @@ -296,7 +296,7 @@ static int pkg_init_imports(struct upkg *pkg) import->package = unpack_32_le(buf+len); len += 4; - rc = decode_index(&tmp, buf+len, nbuf-len); + rc = upkg_decode_index(&tmp, buf+len, nbuf-len); if (rc == 0 || len < 0 || len >= pkg->name_count) goto err; import->object_name = pkg->priv->names[tmp].name; len += rc; diff --git a/src/upkg.h b/src/upkg.h index ef6363e..ab2dacb 100644 --- a/src/upkg.h +++ b/src/upkg.h @@ -65,4 +65,6 @@ struct upkg_file *upkg_export_open(struct upkg *pkg, unsigned long idx); size_t upkg_export_read(struct upkg_file *f, void *buf, size_t n); void upkg_export_close(struct upkg_file *f); +size_t upkg_decode_index(long *val, unsigned char *bytes, size_t n); + #endif -- 2.43.2