From d42bc5c2d8dcf388b424c5bbc4b6f25416f689f1 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sun, 20 May 2012 13:29:44 -0400 Subject: [PATCH] upkg: Add some error checking around upkg_export_get_class. This avoids a segfault when it fails. --- src/uobject/uobject.c | 2 ++ src/upkg.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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; -- 2.43.2