]> git.draconx.ca Git - upkg.git/commitdiff
upkg: Handle errors from u_object_export_name.
authorNick Bowler <nbowler@draconx.ca>
Tue, 29 Mar 2011 01:37:03 +0000 (21:37 -0400)
committerNick Bowler <nbowler@draconx.ca>
Tue, 29 Mar 2011 01:37:03 +0000 (21:37 -0400)
As opposed to blindly proceeding with a nonsense filename...

src/upkg.c

index 0e5a84e6dfe907d9ead33f2920b714129d0aa585..d54a5748cdd7f9d3c3c9866d9a9789557965d5c6 100644 (file)
@@ -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));