Skip to content
  • Havoc Pennington's avatar
    2003-03-16 Havoc Pennington <hp@pobox.com> · ce173b29
    Havoc Pennington authored
    	Oops - test code was only testing failure of around 30 of the
    	mallocs in the test path, but it turns out there are 500+
    	mallocs. I believe this was due to misguided linking setup such
    	that there was one copy of dbus_malloc etc. in the daemon and one
    	in the shared lib, and only daemon mallocs were tested. In any
    	case, the test case now tests all 500+ mallocs, and doesn't pass
    	yet, though there are lots of fixes in this patch.
    
    	* dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
    	this so that it doesn't need to allocate memory, since it
    	has no way of indicating failure due to OOM (and would be
    	annoying if it did).
    
    	* dbus/dbus-list.c (_dbus_list_pop_first_link): new function
    
    	* bus/Makefile.am: rearrange to create two self-contained
    	libraries, to avoid having libraries with overlapping symbols.
    	that was resulting in weirdness, e.g. I'm pretty sure there
    	were two copies of global static variables.
    
    	* dbus/dbus-internals.c: move the malloc debug stuff to
    	dbus-memory.c
    
    	* dbus/dbus-list.c (free_link): free list mempool if it becomes
    	empty.
    
    	* dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
    
    	* dbus/dbus-address.c (dbus_parse_address): free list nodes
    	on failure.
    
    	* bus/dispatch.c (bus_dispatch_add_connection): free
    	message_handler_slot when no longer using it, so
    	memory leak checkers are happy for the test suite.
    
    	* dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
    
    	* bus/bus.c (new_connection_callback): disconnect in here if
    	bus_connections_setup_connection fails.
    
    	* bus/connection.c (bus_connections_unref): fix to free the
    	connections
    	(bus_connections_setup_connection): if this fails, don't
    	disconnect the connection, just be sure there are no side
    	effects.
    
    	* dbus/dbus-string.c (undo_alignment): unbreak this
    
    	* dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
    	leaking
    	(_dbus_auth_new): fix the order in which we free strings
    	on OOM failure
    
    	* bus/connection.c (bus_connection_disconnected): fix to
    	not send ServiceDeleted multiple times in case of memory
    	allocation failure
    
    	* dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
    	get the base service name
    	(dbus_bus_register_client): don't return base service name,
    	instead store it on the DBusConnection and have an accessor
    	function for it.
    	(dbus_bus_register_client): rename dbus_bus_register()
    
    	* bus/dispatch.c (check_hello_message): verify that other
    	connections on the bus also got the correct results, not
    	just the one sending hello
    ce173b29
To find the state of this project's repository at the time of any of these versions, check out the tags.