From: Nick Bowler Date: Tue, 29 Mar 2011 01:37:03 +0000 (-0400) Subject: upkg: Handle errors from u_object_export_name. X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/commitdiff_plain/81729824124106a615b65f9a59280cd5be6c1c05 upkg: Handle errors from u_object_export_name. As opposed to blindly proceeding with a nonsense filename... --- diff --git a/src/upkg.c b/src/upkg.c index 0e5a84e..d54a574 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -314,6 +314,7 @@ static int export(GTypeModule *pkg, GObject *obj, unsigned idx) struct upkg *upkg = U_PKG(pkg)->pkg; char name[256]; FILE *of; + int rc; if (u_object_deserialize(obj, upkg, idx) != 0) { return -1; @@ -323,7 +324,13 @@ static int export(GTypeModule *pkg, GObject *obj, unsigned idx) return -1; } - u_object_export_name(obj, name, sizeof name); + rc = u_object_export_name(obj, name, sizeof name); + if (rc <= 0) { + /* XXX: We could use a default name here. */ + fprintf(stderr, "%s: failed to determine export filename.\n", + progname); + return -1; + } printf("exporting "); export_print_fullname(pkg, upkg_get_export(upkg, idx));