if (template)
{
- error_msg = alloca (strlen (template) + strlen (object) + 1);
- sprintf (error_msg, template, object);
+ size_t len = strlen (template) + strlen (object) + 1;
+ error_msg = alloca (len);
+ snprintf (error_msg, len, template, object);
}
else if (object)
error_msg = (char*)object;
if (size > 1024)
return;
- strcpy (stpcpy (stpcpy (buf, parameter), ":"), value);
+ snprintf (buf, size, "%s:%s", parameter, value);
_kdbus_bloom_add_data (kdbus, bloom_data, buf, size);
}
if (size > 1024)
return;
- strcpy (stpcpy (stpcpy (buf, parameter), ":"), value);
+ snprintf (buf, size, "%s:%s", parameter, value);
for (;;)
{
char type;
char buf[sizeof ("arg")-1 + 2 + sizeof ("-slash-prefix")];
char *e;
+ size_t len;
type = dbus_message_iter_get_arg_type (&args);
if (type != DBUS_TYPE_STRING &&
dbus_message_iter_get_basic (&args, &str);
- e = stpcpy (buf, "arg");
- if (i < 10)
- *(e++) = '0' + (char) i;
- else {
- *(e++) = '0' + (char) (i / 10);
- *(e++) = '0' + (char) (i % 10);
- }
+ snprintf (buf, sizeof (buf), "arg%d", i);
- *e = 0;
bloom_add_pair (bloom_data, kdbus, buf, str);
- strcpy (e, "-dot-prefix");
+ /* point e to end of string, we will add suffixes */
+ len = strlen (buf);
+ e = buf + len;
+ /* we need remaining length of the buffer */
+ len = sizeof (buf) - len;
+
+ strncpy (e, "-dot-prefix", len);
bloom_add_prefixes (bloom_data, kdbus, buf, str, '.');
- strcpy (e, "-slash-prefix");
+ strncpy (e, "-slash-prefix", len);
bloom_add_prefixes (bloom_data, kdbus, buf, str, '/');
if (!dbus_message_iter_next (&args))
unsigned int rule_arg_lens = _match_rule_get_arg_lens (rule, i);
if (rule_arg_lens & MATCH_ARG_IS_PATH)
{
- sprintf (argument_buf, "arg%d-slash-prefix", i);
+ snprintf (argument_buf, sizeof (argument_buf), "arg%d-slash-prefix", i);
bloom_add_prefixes (bloom_data, kdbus, argument_buf, rule_string, '/');
}
else if (rule_arg_lens & MATCH_ARG_NAMESPACE)
{
- sprintf (argument_buf, "arg%d-dot-prefix", i);
+ snprintf (argument_buf, sizeof (argument_buf), "arg%d-dot-prefix", i);
bloom_add_prefixes (bloom_data, kdbus, argument_buf, rule_string, '.');
}
else
{
- sprintf (argument_buf, "arg%d", i);
+ snprintf (argument_buf, sizeof (argument_buf), "arg%d", i);
bloom_add_pair (bloom_data, kdbus, argument_buf, rule_string);
}
}
char bus_id[bus_id_size*2+1];
char *bus_id_ptr = bus_id;
char *bus_id_original = _kdbus_get_bus_id (transport->kdbus);
- int i = 0;
+ dbus_uint64_t i = 0;
for (; i < bus_id_size; i++)
- sprintf (bus_id + 2*i, "%02x", bus_id_original[i]);
+ snprintf (bus_id + 2*i, sizeof (bus_id) - 2*i, "%02x", bus_id_original[i]);
return reply_1_data (message, DBUS_TYPE_STRING, &bus_id_ptr);
}
if (id == ~0ULL)
return "BROADCAST";
- sprintf (buf, "%llu", (unsigned long long)id);
+ snprintf (buf, sizeof (buf), "%llu", (unsigned long long)id);
const_ptr = buf;
return const_ptr;
// for ID_ADD and ID_REMOVE this function takes NULL as bus_name
if (bus_name == NULL)
{
- sprintf (tmp_str,":1.%llu", old != 0 ? old : new);
+ snprintf (tmp_str, sizeof (tmp_str), ":1.%llu", old != 0 ? old : new);
const_ptr = tmp_str;
}
else
// determine and append old_id
if (old != 0)
{
- sprintf (tmp_str,":1.%llu", old);
+ snprintf (tmp_str, sizeof (tmp_str), ":1.%llu", old);
const_ptr = tmp_str;
}
else
// determine and append new_id
if (new != 0)
{
- sprintf (tmp_str,":1.%llu", new);
+ snprintf (tmp_str, sizeof (tmp_str), ":1.%llu", new);
const_ptr = tmp_str;
}
else
if (activator!=NULL)
{
- int size = strlen (activator);
- if (size)
- {
- kdbus_transport->activator = dbus_new (char, size + 1 );
- if (kdbus_transport->activator != NULL)
- strcpy (kdbus_transport->activator, activator);
- else
- goto failed_4;
- }
+ kdbus_transport->activator = _dbus_strdup (activator);
+ if (kdbus_transport->activator == NULL)
+ goto failed_4;
}
kdbus_transport->matchmaker = matchmaker_new ();