From: horwitz Date: Thu, 18 Jun 2009 10:16:52 +0000 (+0000) Subject: Fix:Core:Fix coverity bug #33, Overrun of static array 'dbus_methods'. X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=4f6b64cbf46c56b136f0d7ff0a3c1059c25fdd40;p=navit-package Fix:Core:Fix coverity bug #33, Overrun of static array 'dbus_methods'. git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2341 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- diff --git a/navit/binding/dbus/binding_dbus.c b/navit/binding/dbus/binding_dbus.c index af6c5a5..a2fd119 100644 --- a/navit/binding/dbus/binding_dbus.c +++ b/navit/binding/dbus/binding_dbus.c @@ -844,7 +844,7 @@ introspect_path(char *object) static char * generate_navitintrospectxml(char *object) { - int i,n=0; + int i,methods_size,n=0; char *navitintrospectxml; char *path=introspect_path(object); if (!path) @@ -854,7 +854,8 @@ generate_navitintrospectxml(char *object) // write header and make navit introspectable navitintrospectxml = g_strdup_printf("%s%s%s\n", navitintrospectxml_head1, object, navitintrospectxml_head2); - for (i = 0 ; i < sizeof(dbus_methods)/sizeof(struct dbus_method) ; i++) { + methods_size=sizeof(dbus_methods)/sizeof(struct dbus_method); + for (i = 0 ; i < methods_size ; i++) { // start new interface if it's the first method or it changed if (strcmp(dbus_methods[i].path, path)) continue; @@ -877,7 +878,7 @@ generate_navitintrospectxml(char *object) navitintrospectxml = g_strconcat_printf(navitintrospectxml, " \n"); // close the interface if we reached the last method or the interface changes - if ((sizeof(dbus_methods)/sizeof(struct dbus_method) == (i+1)) || strcmp(dbus_methods[i+1].path, dbus_methods[i].path)) + if ((methods_size == i+1) || (methods_size > i+1) && strcmp(dbus_methods[i+1].path, dbus_methods[i].path)) navitintrospectxml = g_strconcat_printf(navitintrospectxml, " \n\n"); } // close the "mother tag"