Defines | |
#define | DBUS_STRING_COPY_PREAMBLE(source, start, dest, insert_at) |
Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables. | |
#define | UTF8_COMPUTE(Char, Mask, Len) |
computes length and mask of a unicode character | |
#define | UTF8_LENGTH(Char) |
computes length of a unicode character in UTF-8 | |
#define | UTF8_GET(Result, Chars, Count, Mask, Len) |
Gets a UTF-8 value. | |
#define | UNICODE_VALID(Char) |
Check whether a unicode char is in a valid range. | |
#define | VALID_INITIAL_NAME_CHARACTER(c) |
Determine wether the given charater is valid as the first charater in a name. | |
#define | VALID_NAME_CHARACTER(c) |
Determine wether the given charater is valid as a second or later character in a nam. | |
Functions | |
dbus_bool_t | _dbus_string_init_preallocated (DBusString *str, int allocate_size) |
Initializes a string that can be up to the given allocation size before it has to realloc. | |
dbus_bool_t | _dbus_string_init (DBusString *str) |
Initializes a string. | |
void | _dbus_string_init_const (DBusString *str, const char *value) |
Initializes a constant string. | |
void | _dbus_string_init_const_len (DBusString *str, const char *value, int len) |
Initializes a constant string with a length. | |
void | _dbus_string_free (DBusString *str) |
Frees a string created by _dbus_string_init(). | |
char * | _dbus_string_get_data (DBusString *str) |
Gets the raw character buffer from the string. | |
const char * | _dbus_string_get_const_data (const DBusString *str) |
Gets the raw character buffer from a const string. | |
char * | _dbus_string_get_data_len (DBusString *str, int start, int len) |
Gets a sub-portion of the raw character buffer from the string. | |
const char * | _dbus_string_get_const_data_len (const DBusString *str, int start, int len) |
const version of _dbus_string_get_data_len(). | |
void | _dbus_string_set_byte (DBusString *str, int i, unsigned char byte) |
Sets the value of the byte at the given position. | |
unsigned char | _dbus_string_get_byte (const DBusString *str, int start) |
Gets the byte at the given position. | |
dbus_bool_t | _dbus_string_insert_bytes (DBusString *str, int i, int n_bytes, unsigned char byte) |
Inserts a number of bytes of a given value at the given position. | |
dbus_bool_t | _dbus_string_steal_data (DBusString *str, char **data_return) |
Like _dbus_string_get_data(), but removes the gotten data from the original string. | |
dbus_bool_t | _dbus_string_steal_data_len (DBusString *str, char **data_return, int start, int len) |
Like _dbus_string_get_data_len(), but removes the gotten data from the original string. | |
dbus_bool_t | _dbus_string_copy_data (const DBusString *str, char **data_return) |
Copies the data from the string into a char*. | |
dbus_bool_t | _dbus_string_copy_data_len (const DBusString *str, char **data_return, int start, int len) |
Copies a segment of the string into a char*. | |
int | _dbus_string_get_length (const DBusString *str) |
Gets the length of a string (not including nul termination). | |
dbus_bool_t | _dbus_string_lengthen (DBusString *str, int additional_length) |
Makes a string longer by the given number of bytes. | |
void | _dbus_string_shorten (DBusString *str, int length_to_remove) |
Makes a string shorter by the given number of bytes. | |
dbus_bool_t | _dbus_string_set_length (DBusString *str, int length) |
Sets the length of a string. | |
dbus_bool_t | _dbus_string_align_length (DBusString *str, int alignment) |
Align the length of a string to a specific alignment (typically 4 or 8) by appending nul bytes to the string. | |
dbus_bool_t | _dbus_string_append (DBusString *str, const char *buffer) |
Appends a nul-terminated C-style string to a DBusString. | |
dbus_bool_t | _dbus_string_append_4_aligned (DBusString *str, const unsigned char octets[4]) |
Appends 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0. | |
dbus_bool_t | _dbus_string_append_8_aligned (DBusString *str, const unsigned char octets[8]) |
Appends 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0. | |
dbus_bool_t | _dbus_string_append_printf_valist (DBusString *str, const char *format, va_list args) |
Appends a printf-style formatted string to the DBusString. | |
dbus_bool_t | _dbus_string_append_printf (DBusString *str, const char *format,...) |
Appends a printf-style formatted string to the DBusString. | |
dbus_bool_t | _dbus_string_append_len (DBusString *str, const char *buffer, int len) |
Appends block of bytes with the given length to a DBusString. | |
dbus_bool_t | _dbus_string_append_byte (DBusString *str, unsigned char byte) |
Appends a single byte to the string, returning FALSE if not enough memory. | |
dbus_bool_t | _dbus_string_append_unichar (DBusString *str, dbus_unichar_t ch) |
Appends a single Unicode character, encoding the character in UTF-8 format. | |
void | _dbus_string_delete (DBusString *str, int start, int len) |
Deletes a segment of a DBusString with length len starting at start. | |
dbus_bool_t | _dbus_string_move (DBusString *source, int start, DBusString *dest, int insert_at) |
Moves the end of one string into another string. | |
dbus_bool_t | _dbus_string_copy (const DBusString *source, int start, DBusString *dest, int insert_at) |
Like _dbus_string_move(), but does not delete the section of the source string that's copied to the dest string. | |
dbus_bool_t | _dbus_string_move_len (DBusString *source, int start, int len, DBusString *dest, int insert_at) |
Like _dbus_string_move(), but can move a segment from the middle of the source string. | |
dbus_bool_t | _dbus_string_copy_len (const DBusString *source, int start, int len, DBusString *dest, int insert_at) |
Like _dbus_string_copy(), but can copy a segment from the middle of the source string. | |
dbus_bool_t | _dbus_string_replace_len (const DBusString *source, int start, int len, DBusString *dest, int replace_at, int replace_len) |
Replaces a segment of dest string with a segment of source string. | |
void | _dbus_string_get_unichar (const DBusString *str, int start, dbus_unichar_t *ch_return, int *end_return) |
Gets a unicode character from a UTF-8 string. | |
dbus_bool_t | _dbus_string_find (const DBusString *str, int start, const char *substr, int *found) |
Finds the given substring in the string, returning TRUE and filling in the byte index where the substring was found, if it was found. | |
dbus_bool_t | _dbus_string_find_to (const DBusString *str, int start, int end, const char *substr, int *found) |
Finds the given substring in the string, up to a certain position, returning TRUE and filling in the byte index where the substring was found, if it was found. | |
dbus_bool_t | _dbus_string_find_byte_backward (const DBusString *str, int start, unsigned char byte, int *found) |
Find the given byte scanning backward from the given start. | |
dbus_bool_t | _dbus_string_find_blank (const DBusString *str, int start, int *found) |
Finds a blank (space or tab) in the string. | |
void | _dbus_string_skip_blank (const DBusString *str, int start, int *end) |
Skips blanks from start, storing the first non-blank in *end (blank is space or tab). | |
void | _dbus_string_skip_white (const DBusString *str, int start, int *end) |
Skips whitespace from start, storing the first non-whitespace in *end. | |
dbus_bool_t | _dbus_string_pop_line (DBusString *source, DBusString *dest) |
Assigns a newline-terminated or \r\n-terminated line from the front of the string to the given dest string. | |
void | _dbus_string_delete_first_word (DBusString *str) |
Deletes up to and including the first blank space in the string. | |
void | _dbus_string_delete_leading_blanks (DBusString *str) |
Deletes any leading blanks in the string. | |
dbus_bool_t | _dbus_string_equal (const DBusString *a, const DBusString *b) |
Tests two DBusString for equality. | |
dbus_bool_t | _dbus_string_equal_len (const DBusString *a, const DBusString *b, int len) |
Tests two DBusString for equality up to the given length. | |
dbus_bool_t | _dbus_string_equal_c_str (const DBusString *a, const char *c_str) |
Checks whether a string is equal to a C string. | |
dbus_bool_t | _dbus_string_starts_with_c_str (const DBusString *a, const char *c_str) |
Checks whether a string starts with the given C string. | |
dbus_bool_t | _dbus_string_ends_with_c_str (const DBusString *a, const char *c_str) |
Returns whether a string ends with the given suffix. | |
dbus_bool_t | _dbus_string_hex_encode (const DBusString *source, int start, DBusString *dest, int insert_at) |
Encodes a string in hex, the way MD5 and SHA-1 are usually encoded. | |
dbus_bool_t | _dbus_string_hex_decode (const DBusString *source, int start, int *end_return, DBusString *dest, int insert_at) |
Decodes a string from hex encoding. | |
dbus_bool_t | _dbus_string_validate_ascii (const DBusString *str, int start, int len) |
Checks that the given range of the string is valid ASCII with no nul bytes. | |
dbus_bool_t | _dbus_string_validate_utf8 (const DBusString *str, int start, int len) |
Checks that the given range of the string is valid UTF-8. | |
dbus_bool_t | _dbus_string_validate_nul (const DBusString *str, int start, int len) |
Checks that the given range of the string is all nul bytes. | |
dbus_bool_t | _dbus_string_validate_path (const DBusString *str, int start, int len) |
Checks that the given range of the string is a valid object path name in the D-BUS protocol. | |
dbus_bool_t | _dbus_string_validate_interface (const DBusString *str, int start, int len) |
Checks that the given range of the string is a valid interface name in the D-BUS protocol. | |
dbus_bool_t | _dbus_string_validate_member (const DBusString *str, int start, int len) |
Checks that the given range of the string is a valid member name in the D-BUS protocol. | |
dbus_bool_t | _dbus_string_validate_error_name (const DBusString *str, int start, int len) |
Checks that the given range of the string is a valid error name in the D-BUS protocol. | |
dbus_bool_t | _dbus_string_validate_service (const DBusString *str, int start, int len) |
Checks that the given range of the string is a valid service name in the D-BUS protocol. | |
void | _dbus_string_zero (DBusString *str) |
Clears all allocated bytes in the string to zero. | |
dbus_bool_t | _dbus_string_append_int (DBusString *str, long value) |
Appends an integer to a DBusString. | |
dbus_bool_t | _dbus_string_append_uint (DBusString *str, unsigned long value) |
Appends an unsigned integer to a DBusString. | |
dbus_bool_t | _dbus_string_append_double (DBusString *str, double value) |
Appends a double to a DBusString. | |
dbus_bool_t | _dbus_string_parse_int (const DBusString *str, int start, long *value_return, int *end_return) |
Parses an integer contained in a DBusString. | |
dbus_bool_t | _dbus_string_parse_double (const DBusString *str, int start, double *value_return, int *end_return) |
Parses a floating point number contained in a DBusString. |
Types and functions related to DBusString. DBusString is intended to be a string class that makes it hard to mess up security issues (and just in general harder to write buggy code). It should be used (or extended and then used) rather than the libc stuff in string.h. The string class is a bit inconvenient at spots because it handles out-of-memory failures and tries to be extra-robust.
A DBusString has a maximum length set at initialization time; this can be used to ensure that a buffer doesn't get too big. The _dbus_string_lengthen() method checks for overflow, and for max length being exceeded.
Try to avoid conversion to a plain C string, i.e. add methods on the string object instead, only convert to C string when passing things out to the public API. In particular, no sprintf, strcpy, strcat, any of that should be used. The GString feature of accepting negative numbers for "length of string" is also absent, because it could keep us from detecting bogus huge lengths. i.e. if we passed in some bogus huge length it would be taken to mean "current length of string" instead of "broken crack"
|
Value: Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables.
Definition at line 1243 of file dbus-string.c. Referenced by _dbus_string_copy(), _dbus_string_copy_len(), _dbus_string_move_len(), and _dbus_string_replace_len(). |
|
Value: Check whether a unicode char is in a valid range.
Definition at line 1529 of file dbus-string.c. Referenced by _dbus_string_validate_utf8(). |
|
computes length and mask of a unicode character
Definition at line 1457 of file dbus-string.c. Referenced by _dbus_string_get_unichar(), and _dbus_string_validate_utf8(). |
|
Value: Gets a UTF-8 value.
Definition at line 1511 of file dbus-string.c. Referenced by _dbus_string_get_unichar(), and _dbus_string_validate_utf8(). |
|
Value: computes length of a unicode character in UTF-8
Definition at line 1495 of file dbus-string.c. Referenced by _dbus_string_validate_utf8(). |
|
Value: Determine wether the given charater is valid as the first charater in a name.
Definition at line 2558 of file dbus-string.c. Referenced by _dbus_string_validate_interface(), and _dbus_string_validate_member(). |
|
Value: Determine wether the given charater is valid as a second or later character in a nam.
Definition at line 2567 of file dbus-string.c. Referenced by _dbus_string_validate_interface(), and _dbus_string_validate_member(). |
|
Align the length of a string to a specific alignment (typically 4 or 8) by appending nul bytes to the string.
Definition at line 887 of file dbus-string.c. |
|
Appends a nul-terminated C-style string to a DBusString.
Definition at line 919 of file dbus-string.c. References _dbus_assert, DBUS_STRING_PREAMBLE, FALSE, DBusRealString::max_length, and NULL. Referenced by _dbus_directory_get_next_file(), _dbus_homedir_from_username(), _dbus_keyring_new_homedir(), _dbus_marshal_object_path(), _dbus_server_new_for_domain_socket(), _dbus_server_new_for_tcp_socket(), _dbus_string_get_dirname(), _dbus_string_save_to_file(), _dbus_transport_new_for_domain_socket(), _dbus_transport_new_for_tcp_socket(), dbus_server_listen(), and dbus_set_error(). |
|
Appends 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0.
Definition at line 943 of file dbus-string.c. References DBUS_STRING_PREAMBLE, dbus_uint32_t, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. |
|
Appends 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0.
Definition at line 967 of file dbus-string.c. References _dbus_assert, DBUS_STRING_PREAMBLE, dbus_uint64_t, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. |
|
Appends a single byte to the string, returning FALSE if not enough memory.
Definition at line 1094 of file dbus-string.c. References DBUS_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_concat_dir_and_file(), _dbus_marshal_basic_type(), _dbus_marshal_object_path(), _dbus_string_hex_decode(), and _dbus_string_hex_encode(). |
|
Appends a double to a DBusString.
Definition at line 1060 of file dbus-sysdeps.c. References _dbus_string_get_data_len(), _dbus_string_get_length(), _dbus_string_lengthen(), _dbus_string_shorten(), FALSE, and TRUE. |
|
Appends an integer to a DBusString.
Definition at line 984 of file dbus-sysdeps.c. References _dbus_string_get_data_len(), _dbus_string_get_length(), _dbus_string_lengthen(), _dbus_string_shorten(), FALSE, and TRUE. Referenced by _dbus_server_new_for_tcp_socket(), and _dbus_transport_new_for_tcp_socket(). |
|
Appends block of bytes with the given length to a DBusString.
Definition at line 1074 of file dbus-string.c. References _dbus_assert, DBUS_STRING_PREAMBLE, and NULL. Referenced by _dbus_marshal_byte_array(), _dbus_marshal_string(), _dbus_marshal_string_len(), and _dbus_sha_final(). |
|
Appends a printf-style formatted string to the DBusString.
Definition at line 1051 of file dbus-string.c. References _dbus_string_append_printf_valist(), and dbus_bool_t. Referenced by dbus_connection_dispatch(). |
|
Appends a printf-style formatted string to the DBusString.
Definition at line 1012 of file dbus-string.c. References _dbus_string_lengthen(), DBUS_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_string_append_printf(), dbus_message_new_error_printf(), and dbus_set_error(). |
|
Appends an unsigned integer to a DBusString.
Definition at line 1022 of file dbus-sysdeps.c. References _dbus_string_get_data_len(), _dbus_string_get_length(), _dbus_string_lengthen(), _dbus_string_shorten(), FALSE, and TRUE. |
|
Appends a single Unicode character, encoding the character in UTF-8 format.
Definition at line 1115 of file dbus-string.c. References DBUS_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::max_length, DBusRealString::str, and TRUE. |
|
Like _dbus_string_move(), but does not delete the section of the source string that's copied to the dest string.
Definition at line 1291 of file dbus-string.c. References DBUS_STRING_COPY_PREAMBLE. Referenced by _dbus_auth_decode_data(), _dbus_auth_encode_data(), _dbus_concat_dir_and_file(), _dbus_keyring_new_homedir(), _dbus_string_save_to_file(), and dbus_message_copy(). |
|
Copies the data from the string into a char*.
Definition at line 699 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, dbus_malloc(), FALSE, NULL, and TRUE. Referenced by _dbus_server_init_base(), and _dbus_transport_init_base(). |
|
Copies a segment of the string into a char*.
Definition at line 724 of file dbus-string.c. References _dbus_assert, _dbus_string_copy_len(), _dbus_string_free(), _dbus_string_init(), _dbus_string_steal_data(), DBUS_CONST_STRING_PREAMBLE, FALSE, NULL, and TRUE. |
|
Like _dbus_string_copy(), but can copy a segment from the middle of the source string.
Definition at line 1386 of file dbus-string.c. References _dbus_assert, and DBUS_STRING_COPY_PREAMBLE. Referenced by _dbus_string_copy_data_len(), _dbus_string_get_dirname(), and dbus_parse_address(). |
|
Deletes a segment of a DBusString with length len starting at start. (Hint: to clear an entire string, setting length to 0 with _dbus_string_set_length() is easier.)
Definition at line 1201 of file dbus-string.c. References _dbus_assert, and DBUS_STRING_PREAMBLE. Referenced by _dbus_auth_bytes_sent(), _dbus_string_delete_first_word(), and _dbus_string_delete_leading_blanks(). |
|
Deletes up to and including the first blank space in the string.
Definition at line 1904 of file dbus-string.c. References _dbus_string_delete(), _dbus_string_find_blank(), and _dbus_string_skip_blank(). |
|
Deletes any leading blanks in the string.
Definition at line 1920 of file dbus-string.c. References _dbus_string_delete(), and _dbus_string_skip_blank(). |
|
Returns whether a string ends with the given suffix.
Definition at line 2095 of file dbus-string.c. References _dbus_assert, DBUS_GENERIC_STRING_PREAMBLE, FALSE, DBusRealString::len, NULL, DBusRealString::str, and TRUE. |
|
Tests two DBusString for equality.
Definition at line 1940 of file dbus-string.c. References DBUS_GENERIC_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_keyring_is_for_user(), and dbus_error_has_name(). |
|
Checks whether a string is equal to a C string.
Definition at line 2021 of file dbus-string.c. References _dbus_assert, DBUS_GENERIC_STRING_PREAMBLE, FALSE, DBusRealString::len, NULL, DBusRealString::str, and TRUE. Referenced by dbus_address_entry_get_value(). |
|
Tests two DBusString for equality up to the given length.
Definition at line 1982 of file dbus-string.c. References DBUS_GENERIC_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. |
|
Finds the given substring in the string, returning TRUE and filling in the byte index where the substring was found, if it was found. Returns FALSE if the substring wasn't found. Sets *start to the length of the string if the substring is not found.
Definition at line 1597 of file dbus-string.c. References _dbus_string_find_to(). Referenced by _dbus_keyring_validate_context(), _dbus_string_pop_line(), and dbus_parse_address(). |
|
Finds a blank (space or tab) in the string. Returns TRUE if found, FALSE otherwise. If a blank is not found sets *found to the length of the string.
Definition at line 1729 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_keyring_validate_context(), and _dbus_string_delete_first_word(). |
|
Find the given byte scanning backward from the given start. Sets *found to -1 if the byte is not found.
Definition at line 1692 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, NULL, and DBusRealString::str. Referenced by _dbus_string_get_dirname(). |
|
Finds the given substring in the string, up to a certain position, returning TRUE and filling in the byte index where the substring was found, if it was found. Returns FALSE if the substring wasn't found. Sets *start to the length of the string if the substring is not found.
Definition at line 1624 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, NULL, DBusRealString::str, and TRUE. Referenced by _dbus_string_find(), and dbus_parse_address(). |
|
Frees a string created by _dbus_string_init().
Definition at line 312 of file dbus-string.c. References DBusRealString::align_offset, DBusRealString::constant, dbus_free(), DBUS_GENERIC_STRING_PREAMBLE, DBusRealString::invalid, DBusRealString::str, and TRUE. Referenced by _dbus_auth_unref(), _dbus_keyring_new_homedir(), _dbus_keyring_unref(), _dbus_message_loader_unref(), _dbus_server_new_for_domain_socket(), _dbus_server_new_for_tcp_socket(), _dbus_sha_compute(), _dbus_string_copy_data_len(), _dbus_string_hex_decode(), _dbus_string_hex_encode(), _dbus_string_save_to_file(), _dbus_string_steal_data_len(), _dbus_transport_new_for_domain_socket(), _dbus_transport_new_for_fd(), _dbus_transport_new_for_tcp_socket(), _dbus_transport_open(), dbus_connection_dispatch(), dbus_message_copy(), dbus_message_new_error_printf(), dbus_message_unref(), dbus_parse_address(), dbus_server_listen(), and dbus_set_error(). |
|
Gets the byte at the given position. It is allowed to ask for the nul byte at the end of the string.
Definition at line 558 of file dbus-string.c. References _dbus_assert, and DBUS_CONST_STRING_PREAMBLE. Referenced by _dbus_concat_dir_and_file(), _dbus_demarshal_basic_type(), _dbus_generate_random_ascii(), _dbus_marshal_validate_arg(), _dbus_path_is_absolute(), _dbus_string_get_dirname(), _dbus_string_hex_decode(), _dbus_string_pop_line(), _dbus_string_validate_service(), and dbus_message_get_type(). |
|
Gets the raw character buffer from a const string.
Definition at line 473 of file dbus-string.c. References DBUS_CONST_STRING_PREAMBLE. Referenced by _dbus_auth_bytes_sent(), _dbus_create_directory(), _dbus_create_file_exclusively(), _dbus_delete_directory(), _dbus_delete_file(), _dbus_demarshal_basic_type(), _dbus_directory_open(), _dbus_file_get_contents(), _dbus_keyring_new_homedir(), _dbus_sha_update(), _dbus_stat(), _dbus_string_hex_decode(), _dbus_string_hex_encode(), _dbus_string_save_to_file(), _dbus_write_pid_file(), dbus_address_entry_get_method(), dbus_address_entry_get_value(), dbus_connection_dispatch(), dbus_message_new_error_printf(), and dbus_server_listen(). |
|
const version of _dbus_string_get_data_len().
Definition at line 516 of file dbus-string.c. References _dbus_assert, and DBUS_CONST_STRING_PREAMBLE. Referenced by _dbus_demarshal_byte_array(), _dbus_demarshal_object_path(), _dbus_demarshal_string(), _dbus_marshal_validate_type(), _dbus_message_loader_queue_messages(), _dbus_string_parse_double(), _dbus_string_parse_int(), _dbus_verbose_bytes_of_string(), _dbus_write(), _dbus_write_two(), dbus_message_get_auto_activation(), and dbus_message_get_no_reply(). |
|
Gets the raw character buffer from the string. The returned buffer will be nul-terminated, but note that strings may contain binary data so there may be extra nul characters prior to the termination. This function should be little-used, extend DBusString or add stuff to dbus-sysdeps.c instead. It's an error to use this function on a const string.
Definition at line 459 of file dbus-string.c. References DBUS_STRING_PREAMBLE. |
|
Gets a sub-portion of the raw character buffer from the string. The "len" field is required simply for error checking, to be sure you don't try to use more string than exists. The nul termination of the returned buffer remains at the end of the entire string, not at start + len.
Definition at line 494 of file dbus-string.c. References _dbus_assert, and DBUS_STRING_PREAMBLE. Referenced by _dbus_read(), _dbus_string_append_double(), _dbus_string_append_int(), _dbus_string_append_uint(), dbus_message_set_auto_activation(), and dbus_message_set_no_reply(). |
|
|
Gets a unicode character from a UTF-8 string. Does no validation; you must verify that the string is valid UTF-8 in advance and must pass in the start of a character.
Definition at line 1546 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, DBusRealString::len, DBusRealString::str, UTF8_COMPUTE, and UTF8_GET. |
|
Decodes a string from hex encoding.
Definition at line 2198 of file dbus-string.c. References _dbus_assert, _dbus_string_append_byte(), _dbus_string_free(), _dbus_string_get_byte(), _dbus_string_get_const_data(), _dbus_string_get_length(), _dbus_string_init(), _dbus_string_move(), _dbus_string_set_byte(), dbus_bool_t, FALSE, and TRUE. |
|
Encodes a string in hex, the way MD5 and SHA-1 are usually encoded. (Each byte is two hex digits.)
Definition at line 2139 of file dbus-string.c. References _dbus_assert, _dbus_string_append_byte(), _dbus_string_free(), _dbus_string_get_const_data(), _dbus_string_get_length(), _dbus_string_init(), _dbus_string_move(), dbus_bool_t, FALSE, and TRUE. Referenced by _dbus_keyring_get_hex_key(), and _dbus_sha_compute(). |
|
Initializes a string. The string starts life with zero length. The string must eventually be freed with _dbus_string_free().
Definition at line 229 of file dbus-string.c. References _dbus_string_init_preallocated(). Referenced by _dbus_keyring_new_homedir(), _dbus_message_loader_new(), _dbus_server_new_for_domain_socket(), _dbus_server_new_for_tcp_socket(), _dbus_sha_compute(), _dbus_string_copy_data_len(), _dbus_string_hex_decode(), _dbus_string_hex_encode(), _dbus_string_save_to_file(), _dbus_string_steal_data(), _dbus_string_steal_data_len(), _dbus_transport_new_for_domain_socket(), _dbus_transport_new_for_fd(), _dbus_transport_new_for_tcp_socket(), dbus_connection_dispatch(), dbus_message_new_error_printf(), dbus_parse_address(), dbus_server_listen(), and dbus_set_error(). |
|
Initializes a constant string. The value parameter is not copied (should be static), and the string may never be modified. It is safe but not necessary to call _dbus_string_free() on a const string. The string has a length limit of MAXINT - 8.
Definition at line 261 of file dbus-string.c. References _dbus_assert, _dbus_string_init_const_len(), and NULL. Referenced by _dbus_keyring_new_homedir(), _dbus_transport_open(), dbus_error_has_name(), dbus_parse_address(), and dbus_server_listen(). |
|
Initializes a constant string with a length. The value parameter is not copied (should be static), and the string may never be modified. It is safe but not necessary to call _dbus_string_free() on a const string.
Definition at line 281 of file dbus-string.c. References _dbus_assert, DBusRealString::allocated, ALLOCATION_PADDING, DBusRealString::constant, FALSE, DBusRealString::invalid, DBusRealString::len, DBusRealString::max_length, MAX_MAX_LENGTH, NULL, DBusRealString::str, and TRUE. Referenced by _dbus_string_init_const(). |
|
Initializes a string that can be up to the given allocation size before it has to realloc. The string starts life with zero length. The string must eventually be freed with _dbus_string_free().
Definition at line 185 of file dbus-string.c. References _dbus_assert, DBusRealString::align_offset, DBusRealString::allocated, ALLOCATION_PADDING, DBusRealString::constant, dbus_malloc(), FALSE, DBusRealString::invalid, DBusRealString::len, DBusRealString::locked, DBusRealString::max_length, MAX_MAX_LENGTH, NULL, DBusRealString::str, and TRUE. Referenced by _dbus_string_init(), and dbus_message_copy(). |
|
Inserts a number of bytes of a given value at the given position.
Definition at line 579 of file dbus-string.c. References _dbus_assert, DBUS_STRING_PREAMBLE, FALSE, and TRUE. |
|
Makes a string longer by the given number of bytes. Checks whether adding additional_length to the current length would overflow an integer, and checks for exceeding a string's max length. The new bytes are not initialized, other than nul-terminating the end of the string. The uninitialized bytes may contain nul bytes or other junk.
Definition at line 785 of file dbus-string.c. References _dbus_assert, DBUS_STRING_PREAMBLE, and FALSE. Referenced by _dbus_marshal_string_len(), _dbus_read(), _dbus_string_append_double(), _dbus_string_append_int(), _dbus_string_append_printf_valist(), and _dbus_string_append_uint(). |
|
Moves the end of one string into another string. Both strings must be initialized, valid strings.
Definition at line 1267 of file dbus-string.c. References _dbus_assert, _dbus_string_move_len(), and DBusRealString::len. Referenced by _dbus_string_hex_decode(), and _dbus_string_hex_encode(). |
|
Like _dbus_string_move(), but can move a segment from the middle of the source string.
Definition at line 1319 of file dbus-string.c. References _dbus_assert, DBUS_STRING_COPY_PREAMBLE, FALSE, and TRUE. Referenced by _dbus_string_move(), _dbus_string_pop_line(), and _dbus_string_steal_data_len(). |
|
Parses a floating point number contained in a DBusString. Either return parameter may be NULL if you aren't interested in it. The integer is parsed and stored in value_return. Return parameters are not initialized if the function returns FALSE.
Definition at line 1339 of file dbus-sysdeps.c. References _dbus_string_get_const_data_len(), _dbus_string_get_length(), FALSE, NULL, and TRUE. |
|
Parses an integer contained in a DBusString. Either return parameter may be NULL if you aren't interested in it. The integer is parsed and stored in value_return. Return parameters are not initialized if the function returns FALSE.
Definition at line 1102 of file dbus-sysdeps.c. References _dbus_string_get_const_data_len(), _dbus_string_get_length(), FALSE, NULL, and TRUE. Referenced by _dbus_transport_open(), _dbus_uid_from_string(), and dbus_server_listen(). |
|
Assigns a newline-terminated or \r\n-terminated line from the front of the string to the given dest string. The dest string's previous contents are deleted. If the source string contains no newline, moves the entire source string to the dest string.
Definition at line 1846 of file dbus-string.c. References _dbus_assert, _dbus_string_find(), _dbus_string_get_byte(), _dbus_string_get_length(), _dbus_string_move_len(), _dbus_string_set_length(), dbus_bool_t, FALSE, and TRUE. |
|
Replaces a segment of dest string with a segment of source string.
Definition at line 1424 of file dbus-string.c. References _dbus_assert, DBUS_STRING_COPY_PREAMBLE, FALSE, and TRUE. Referenced by _dbus_auth_set_context(), and _dbus_marshal_set_string(). |
|
Sets the value of the byte at the given position.
Definition at line 537 of file dbus-string.c. References _dbus_assert, and DBUS_STRING_PREAMBLE. Referenced by _dbus_generate_random_ascii(), and _dbus_string_hex_decode(). |
|
|
Makes a string shorter by the given number of bytes.
Definition at line 805 of file dbus-string.c. References _dbus_assert, and DBUS_STRING_PREAMBLE. Referenced by _dbus_concat_dir_and_file(), _dbus_string_append_double(), _dbus_string_append_int(), and _dbus_string_append_uint(). |
|
Skips blanks from start, storing the first non-blank in *end (blank is space or tab).
Definition at line 1767 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, DBusRealString::len, and DBusRealString::str. Referenced by _dbus_string_delete_first_word(), and _dbus_string_delete_leading_blanks(). |
|
Skips whitespace from start, storing the first non-whitespace in *end. (whitespace is space, tab, newline, CR).
Definition at line 1802 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, DBusRealString::len, and DBusRealString::str. |
|
Checks whether a string starts with the given C string.
Definition at line 2057 of file dbus-string.c. References _dbus_assert, DBUS_GENERIC_STRING_PREAMBLE, FALSE, DBusRealString::len, NULL, DBusRealString::str, and TRUE. |
|
Like _dbus_string_get_data(), but removes the gotten data from the original string. The caller must free the data returned. This function may fail due to lack of memory, and return FALSE.
Definition at line 611 of file dbus-string.c. References _dbus_assert, _dbus_string_init(), DBUS_STRING_PREAMBLE, FALSE, NULL, and TRUE. Referenced by _dbus_string_copy_data_len(), _dbus_string_steal_data_len(), and dbus_set_error(). |
|
Like _dbus_string_get_data_len(), but removes the gotten data from the original string. The caller must free the data returned. This function may fail due to lack of memory, and return FALSE. The returned string is nul-terminated and has length len.
Definition at line 655 of file dbus-string.c. References _dbus_assert, _dbus_string_free(), _dbus_string_init(), _dbus_string_move_len(), _dbus_string_steal_data(), _dbus_warn(), DBUS_STRING_PREAMBLE, FALSE, NULL, and TRUE. |
|
Checks that the given range of the string is valid ASCII with no nul bytes. If the given range is not entirely contained in the string, returns FALSE.
Definition at line 2339 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_generate_random_ascii(), and _dbus_keyring_validate_context(). |
|
Checks that the given range of the string is a valid error name in the D-BUS protocol. This includes a length restriction, etc., see the specification.
Definition at line 2726 of file dbus-string.c. References _dbus_string_validate_interface(). |
|
Checks that the given range of the string is a valid interface name in the D-BUS protocol. This includes a length restriction and an ASCII subset, see the specification.
Definition at line 2587 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, NULL, DBusRealString::str, TRUE, VALID_INITIAL_NAME_CHARACTER, and VALID_NAME_CHARACTER. Referenced by _dbus_string_validate_error_name(), and _dbus_string_validate_service(). |
|
Checks that the given range of the string is a valid member name in the D-BUS protocol. This includes a length restriction, etc., see the specification.
Definition at line 2664 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, TRUE, VALID_INITIAL_NAME_CHARACTER, and VALID_NAME_CHARACTER. |
|
Checks that the given range of the string is all nul bytes. If the given range is not entirely contained in the string, returns FALSE.
Definition at line 2460 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_marshal_validate_arg(). |
|
Checks that the given range of the string is a valid object path name in the D-BUS protocol. This includes a length restriction, etc., see the specification. It does not validate UTF-8, that has to be done separately for now.
Definition at line 2504 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, and TRUE. Referenced by _dbus_marshal_validate_arg(). |
|
Checks that the given range of the string is a valid service name in the D-BUS protocol. This includes a length restriction, etc., see the specification.
Definition at line 2797 of file dbus-string.c. References _dbus_string_get_byte(), _dbus_string_validate_interface(), and FALSE. |
|
Checks that the given range of the string is valid UTF-8. If the given range is not entirely contained in the string, returns FALSE. If the string contains any nul bytes in the given range, returns FALSE. If the start and start+len are not on character boundaries, returns FALSE.
Definition at line 2383 of file dbus-string.c. References _dbus_assert, DBUS_CONST_STRING_PREAMBLE, FALSE, DBusRealString::len, DBusRealString::str, TRUE, UNICODE_VALID, UTF8_COMPUTE, UTF8_GET, and UTF8_LENGTH. |
|
Clears all allocated bytes in the string to zero.
Definition at line 2815 of file dbus-string.c. References DBusRealString::align_offset, DBusRealString::allocated, DBUS_STRING_PREAMBLE, and DBusRealString::str. |