|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
	in error messages
	(_dbus_string_get_dirname): new
	(_dbus_sysdeps_test): new
	(_dbus_directory_open): include dirnames in error messages
	* bus/config-parser.c: interpret <include> and <includedir> and
	<servicedir> relative to config file location if the given
	filename is not absolute.
	* dbus/dbus-string.c (_dbus_string_find_byte_backward): new | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Fix some annoying DBusString API and fix all affected code.
	* dbus/dbus-string.c (_dbus_string_init): get rid of annoying
	max_length argument
	(_dbus_string_get_data): change to return string instead of using
	an out param
	(_dbus_string_get_const_data): ditto
	(_dbus_string_get_data_len): ditto
	(_dbus_string_get_const_data_len): ditto | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/config-parser.c: hacking
	* dbus/dbus-memory.c: don't use DBusList for the list of stuff
	to shut down, since it could cause weirdness with the DBusList
	lock
	* dbus/dbus-list.c (_dbus_list_test): add tests for the
	link-oriented stack routines
	(alloc_link): free the mempool if the first alloc from it fails
	* dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
	* dbus/dbus-string.c (UNICODE_VALID): sync new version of this
	from GLib
	(_dbus_string_skip_white): new
	* doc/config-file.txt (Elements): add <includedir> | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | All kinds of audit fixes from Owen, plus initial attempt to
	handle unaligned memory returned from malloc.
	* dbus/dbus-string.c (_dbus_string_init): clamp max length to
	leave room for align_offset and nul byte
	(fixup_alignment): function to track an align_offset and
	ensure real->str is aligned
	(DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
	to allow a nul byte plus align offset
	(_dbus_string_lock): fix overflow issue
	(_dbus_string_init_const_len): add assertions on sanity of len,
	assign allocated to be ALLOCATION_PADDING larger than len
	(set_length): fixup the overflow handling
	(_dbus_string_get_data_len): fix overflow in assertion
	(open_gap): detect overflow in size of gap to be opened
	(_dbus_string_lengthen): add overflow check
	(_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
	(_dbus_string_append): add overflow check
	(_dbus_string_append_unichar): overflow
	(_dbus_string_delete): fix overflow in assertion
	(_dbus_string_copy_len): overflow in assertion
	(_dbus_string_replace_len): overflows in assertions
	(_dbus_string_find): change to implement in terms of
	_dbus_string_find_to
	(_dbus_string_find_to): assorted fixage
	(_dbus_string_equal_c_str): assert c_str != NULL,
	fix logic so the function works
	(_dbus_string_ends_with_c_str): fix overflow thingy
	(_dbus_string_base64_encode): overflow fix
	(_dbus_string_validate_ascii): overflow
	(_dbus_string_validate_nul): overflow | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-keyring.c: finish most of this implementation and
	simple unit test
	* dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
	these barf if the error isn't cleared to NULL
	* dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
	(_dbus_create_directory): new function
	* dbus/dbus-errors.c (dbus_set_error): fix warning
	* dbus/dbus-string.c (_dbus_string_hex_encode): new function
	(_dbus_string_hex_decode): new function
	(test_hex_roundtrip): test code
	* dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
	* dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
	* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
	the save-to-temp/rename trick to atomically write the new file
	(_dbus_string_parse_uint): new function | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-string.c (_dbus_string_zero): new function
	* dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
	wrap it in some dbus-friendly API
	* dbus/dbus-types.h: add 16-bit types | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
	initial cut at test framework for DBusAuth from laptop.
	Doesn't quite work yet but it compiles and I need to get
	it off the 266mhz laptop. ;-)
	* dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
	fix a memleak in error case | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-break-loader.c (main): new program to find messages
	that break the loader.
	* dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
	* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
	* dbus/dbus-string.c (_dbus_string_set_byte): new | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/Makefile.am:
	Add dbus-address.[ch]
	* dbus/dbus-address.c: (dbus_address_entry_free),
	(dbus_address_entries_free), (create_entry),
	(dbus_address_entry_get_method), (dbus_address_entry_get_value),
	(dbus_parse_address), (_dbus_address_test):
	* dbus/dbus-address.h:
	New files for dealing with address parsing.
	* dbus/dbus-connection.c:
	Document timeout functions.
	* dbus/dbus-message.c:
	Document dbus_message_new_from_message.
	* dbus/dbus-server-debug.c:
	Document.
	* dbus/dbus-server.c: (dbus_server_listen):
	Parse address and use correct server implementation.
	* dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
	* dbus/dbus-string.h:
	New function with test.
	* dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
	* dbus/dbus-test.h:
	Add address tests.
	* dbus/dbus-transport-debug.c:
	Document.
	* dbus/dbus-transport.c: (_dbus_transport_open):
	Parse address and use correct transport implementation. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-message.c: use message->byte_order instead of
	DBUS_COMPILER_BYTE_ORDER throughout.
	(dbus_message_create_header): pad header to align the
	start of the body of the message to 8-byte boundary
	* dbus/dbus-marshal.h: make all the demarshalers take const
	DBusString arguments.
	* dbus/dbus-message.c (_dbus_message_loader_return_buffer):
	validate message args here, so we don't have to do slow validation
	later, and so we catch bad messages as they are incoming. Also add
	better checks on header_len and body_len. Also fill in
	message->byte_order
	* dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
	implemented properly)
	(_dbus_string_validate_nul): new function to check all-nul
	* dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
	get_arg_end_pos and remove all validation
	(_dbus_marshal_validate_arg): actually do validation here. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-mempool.c (time_for_size): replace printf with
	_dbus_verbose
	* dbus/dbus-message-builder.c (_dbus_message_data_load): allow
	empty lines; fix the SAVE_LENGTH stuff to be
	START_LENGTH/END_LENGTH so it actually works; couple other
	bugfixes
	* test/Makefile.am (dist-hook): add dist-hook for .message files
	* dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
	can be constant or locked.
	(_dbus_string_free): allow freeing a const string as
	documented/intended
	* dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
	* dbus/dbus-test-main.c (main): take an argument which is the
	directory containing test data
	* dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
	argument to this and load all the messages in test/data/
	checking that they can be loaded or not loaded as appropriate. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-message-builder.c: implement, completely untested.
	* test/data/*: add data to be used in testing.
	".message" files are our simple loadable text format.
	".message-raw" will be binary dumps of messages.
	* dbus/dbus-string.c (_dbus_string_starts_with_c_str): new | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The unit tests pass, but otherwise untested.  If it breaks, the
	tests should have been better. ;-)
	* bus/driver.c (bus_driver_handle_hello): return if we disconnect
	the connection.
	* dbus/dbus-message.c: redo everything so we maintain
	message->header as the only copy of the various fields.
	This avoids the possibility of out-of-memory in some cases,
	for example dbus_message_lock() can't run out of memory anymore,
	and avoids extra copying. Figured I may as well go ahead and do
	this since it was busted for dbus_message_lock to not return
	failure on OOM, and dbus_message_write_header was totally
	unchecked for OOM. Also fixed some random other bugs.
	* dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
	that strings are nul-terminated. Also, end_pos can be equal
	to string length just not greater than, I think.
	(_dbus_marshal_set_int32): new function
	(_dbus_marshal_set_uint32): new function
	(_dbus_marshal_set_string): new function
	* dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
	a warning, init timeout_list to NULL
	(dbus_connection_send_message): don't use uninitialized variable
	"serial"
	* dbus/dbus-string.c (_dbus_string_replace_len): new function | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-string.c (_dbus_string_align_length): new function
	* dbus/dbus-test-main.c: move main() for test app here
	* dbus/dbus-test.c
	(dbus_internal_symbol_do_not_use_run_tests): we have to export a
	symbol to run tests, because dbus-test isn't in the main
	library
        Code review nitpicks.
	* dbus/dbus-message.c (dbus_message_write_header): add newlines
	for people with narrow emacs ;-). Assert client_serial was filled
	in. Assert message->name != NULL.
	(dbus_message_append_fields): have "first_field_type" arg separate
	from va list, needed for C++ binding that also uses varargs IIRC
	and helps with type safety
	(dbus_message_new): add @todo about using DBusString to store
	service/name internally
	(dbus_message_new): don't leak ->service and ->name on OOM later
	in the function
	(dbus_message_unref): free the service name
	(dbus_message_get_fields): same change to varargs
	i.e. first_field_type
	(_dbus_message_loader_return_buffer): assert that the message data
	is aligned (if not it's a bug in our code). Put in verbose griping
	about why we set corrupted = TRUE.
	(decode_header_data): add FIXME that char* is evil.  Was going to
	add FIXME about evil locale-specific string.h strncmp, but just
	switched to wacky string-as-uint32 optimization. Move check for
	"no room for field name" above get_const_data_len() to avoid
	assertion failure in get_const_data_len if we have trailing 2
	bytes or the like. Check for service and name fields being
	provided twice. Don't leak service/name on error. Require field
	names to be aligned to 4 bytes.
	* dbus/dbus-marshal.c: move byte swap stuff to header
	(_dbus_pack_int32): uscore-prefix
	(_dbus_unpack_int32): uscore-prefix
	(_dbus_unpack_uint32): export
	(_dbus_demarshal_string): add @todo complaining about use of
	memcpy()
	(_dbus_marshal_get_field_end_pos): add @todo about bad error
	handling allowing corrupt data to go unchecked | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
	WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
	doh
	* dbus/dbus-marshal.c: Add macros to do int swapping in-place and
	avoid swap_bytes() overhead (ignoring possible assembly stuff for
	now). Main point is because I wanted unpack_uint32 to implement
	_dbus_verbose_bytes
	(_dbus_verbose_bytes): new function
	* dbus/dbus-string.c (_dbus_string_validate_ascii): new function
	* dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
	mechanism to handle a corrupt message stream
	(_dbus_message_loader_new): fix preallocation to only prealloc,
	not prelengthen
	* dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
	(_dbus_string_test): enhance tests for copy/move and fix the
	functions
	* dbus/dbus-transport-unix.c: Hold references in more places to
	avoid reentrancy problems
	* dbus/dbus-transport.c: ditto
	* dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
	leak reference count in no-message case
	* test/watch.c (do_mainloop): handle adding/removing watches
	during iteration over the watches. Also, ref the connection/server
	stored on a watch, so we don't try to mangle a destroyed one.
	* dbus/dbus-transport-unix.c (do_authentication): perform
	authentication
	* dbus/dbus-auth.c (get_state): add a state
	AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
	(_dbus_auth_get_unused_bytes): append the unused bytes
	to the passed in string, rather than prepend
	* dbus/dbus-transport.c (_dbus_transport_init_base): create
	the auth conversation DBusAuth
	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
	(_dbus_transport_new_for_domain_socket): when creating a
	transport, pass in whether it's a client-side or server-side
	transport so we know which DBusAuth to create | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
	it is a simple protocol that just maps directly to SASL.
	* dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
	initial implementation, not actually used yet.
	* dbus/dbus-string.c (_dbus_string_find): new function
	(_dbus_string_equal): new function
	(_dbus_string_base64_encode): new function
	(_dbus_string_base64_decode): new function | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
	below new interfaces and include fewer system headers.
	* dbus/dbus-sysdeps.c (_dbus_read): new function
	(_dbus_write): new function
	(_dbus_write_two): new function
	(_dbus_connect_unix_socket): new function
	(_dbus_listen_unix_socket): new function
	* dbus/dbus-message-internal.h: change interfaces to use
	DBusString | 
|  | * dbus/dbus-types.h: add dbus_unichar
	* dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
	* dbus/dbus-connection.c (dbus_connection_send_message): return
	TRUE on success
	* dbus/dbus-transport.c: include dbus-watch.h
	* dbus/dbus-connection.c: include dbus-message-internal.h
	* HACKING: add file with coding guidelines stuff.
	* dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
	handling here, for security purposes (as in vsftpd). Not actually
	using this class yet.
	* dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
	system/libc usage here, as in vsftpd, for ease of auditing (and
	should also simplify portability). Haven't actually moved all the
	system/libc usage into here yet. |