From: Nick Bowler Date: Sun, 20 May 2012 17:29:44 +0000 (-0400) Subject: upkg: Add some error checking around upkg_export_get_class. X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/commitdiff_plain/d42bc5c2d8dcf388b424c5bbc4b6f25416f689f1 upkg: Add some error checking around upkg_export_get_class. This avoids a segfault when it fails. --- diff --git a/src/uobject/uobject.c b/src/uobject/uobject.c index 627abe6..331b8ae 100644 --- a/src/uobject/uobject.c +++ b/src/uobject/uobject.c @@ -529,6 +529,8 @@ GObject *u_object_new_from_package(GTypeModule *pkg, unsigned long idx) GType type; class = upkg_export_class(U_PKG(pkg)->pkg, idx, &package); + if (!class) + return NULL; type = u_object_module_get_class(package, class); if (type) { diff --git a/src/upkg.c b/src/upkg.c index ee1023a..50f5dda 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -366,7 +366,10 @@ static int object_info(GTypeModule *pkg, unsigned long idx) export_print_fullname(pkg, export); class = upkg_export_class(upkg, idx, &package); - printf(" (%s.%s)\n", package, class); + if (class) + printf(" (%s.%s)\n", package, class); + else + printf(" (failed to get class)\n"); if (verbose >= 1 && object_dump_properties(pkg, idx) != 0) ret = -1;