X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/a6f1f69cc4874e2f2f878289bfc0f677220dfda9..c7949f41d0002e833f2977e66785795d6c6c1829:/src/libupkg.c diff --git a/src/libupkg.c b/src/libupkg.c index 3f07095..45fda93 100644 --- a/src/libupkg.c +++ b/src/libupkg.c @@ -171,7 +171,7 @@ static int pkg_init_names(struct upkg *pkg) /* Read some data into buffer. */ if (!feof(pkg->priv->f)) { rc = fread(buf+nbuf, 1, sizeof buf-nbuf, pkg->priv->f); - if (rc == 0) + if (rc == 0 && nbuf == 0) goto err; nbuf += rc; } @@ -236,7 +236,7 @@ static int pkg_init_exports(struct upkg *pkg) /* Read some data into buffer. */ if (!feof(pkg->priv->f)) { rc = fread(buf+nbuf, 1, sizeof buf-nbuf, pkg->priv->f); - if (rc == 0) + if (rc == 0 && nbuf == 0) goto err; nbuf += rc; } @@ -306,7 +306,7 @@ static int pkg_init_imports(struct upkg *pkg) /* Read some data into buffer. */ if (!feof(pkg->priv->f)) { rc = fread(buf+nbuf, 1, sizeof buf-nbuf, pkg->priv->f); - if (rc == 0) + if (rc == 0 && nbuf == 0) goto err; nbuf += rc; } @@ -436,6 +436,13 @@ long upkg_export_find(struct upkg *pkg, const char *name) return -1; } +unsigned long upkg_export_flags(struct upkg *pkg, unsigned long idx) +{ + if (idx < pkg->export_count) + return pkg->priv->exports[idx].flags; + return 0; +} + const char *upkg_export_name(struct upkg *pkg, unsigned long idx) { if (idx < pkg->export_count)