Commit f01bd748 authored by Alban Crequy's avatar Alban Crequy Committed by Simon McVittie

match_rule_to_string: returns NULL if no memory instead of looping

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=24307Reviewed-by: default avatarSimon McVittie <simon.mcvittie@collabora.co.uk>
parent 2e7a24bb
...@@ -122,6 +122,7 @@ bus_match_rule_unref (BusMatchRule *rule) ...@@ -122,6 +122,7 @@ bus_match_rule_unref (BusMatchRule *rule)
/* Note this function does not do escaping, so it's only /* Note this function does not do escaping, so it's only
* good for debug spew at the moment * good for debug spew at the moment
*/ */
/* returns NULL if no memory */
static char* static char*
match_rule_to_string (BusMatchRule *rule) match_rule_to_string (BusMatchRule *rule)
{ {
...@@ -130,10 +131,7 @@ match_rule_to_string (BusMatchRule *rule) ...@@ -130,10 +131,7 @@ match_rule_to_string (BusMatchRule *rule)
if (!_dbus_string_init (&str)) if (!_dbus_string_init (&str))
{ {
char *s; return NULL;
while ((s = _dbus_strdup ("nomem")) == NULL)
; /* only OK for debug spew... */
return s;
} }
if (rule->flags & BUS_MATCH_MESSAGE_TYPE) if (rule->flags & BUS_MATCH_MESSAGE_TYPE)
...@@ -272,12 +270,7 @@ match_rule_to_string (BusMatchRule *rule) ...@@ -272,12 +270,7 @@ match_rule_to_string (BusMatchRule *rule)
nomem: nomem:
_dbus_string_free (&str); _dbus_string_free (&str);
{ return NULL;
char *s;
while ((s = _dbus_strdup ("nomem")) == NULL)
; /* only OK for debug spew... */
return s;
}
} }
#endif /* defined(DBUS_ENABLE_VERBOSE_MODE) || defined(DBUS_ENABLE_STATS) */ #endif /* defined(DBUS_ENABLE_VERBOSE_MODE) || defined(DBUS_ENABLE_STATS) */
...@@ -1427,7 +1420,7 @@ bus_matchmaker_add_rule (BusMatchmaker *matchmaker, ...@@ -1427,7 +1420,7 @@ bus_matchmaker_add_rule (BusMatchmaker *matchmaker,
char *s = match_rule_to_string (rule); char *s = match_rule_to_string (rule);
_dbus_verbose ("Added match rule %s to connection %p\n", _dbus_verbose ("Added match rule %s to connection %p\n",
s, rule->matches_go_to); s ? s : "nomem", rule->matches_go_to);
dbus_free (s); dbus_free (s);
} }
#endif #endif
...@@ -1520,7 +1513,7 @@ bus_matchmaker_remove_rule_link (DBusList **rules, ...@@ -1520,7 +1513,7 @@ bus_matchmaker_remove_rule_link (DBusList **rules,
char *s = match_rule_to_string (rule); char *s = match_rule_to_string (rule);
_dbus_verbose ("Removed match rule %s for connection %p\n", _dbus_verbose ("Removed match rule %s for connection %p\n",
s, rule->matches_go_to); s ? s : "nomem", rule->matches_go_to);
dbus_free (s); dbus_free (s);
} }
#endif #endif
...@@ -1557,7 +1550,7 @@ bus_matchmaker_remove_rule (BusMatchmaker *matchmaker, ...@@ -1557,7 +1550,7 @@ bus_matchmaker_remove_rule (BusMatchmaker *matchmaker,
char *s = match_rule_to_string (rule); char *s = match_rule_to_string (rule);
_dbus_verbose ("Removed match rule %s for connection %p\n", _dbus_verbose ("Removed match rule %s for connection %p\n",
s, rule->matches_go_to); s ? s : "nomem", rule->matches_go_to);
dbus_free (s); dbus_free (s);
} }
#endif #endif
...@@ -2034,7 +2027,7 @@ get_recipients_from_list (DBusList **rules, ...@@ -2034,7 +2027,7 @@ get_recipients_from_list (DBusList **rules,
char *s = match_rule_to_string (rule); char *s = match_rule_to_string (rule);
_dbus_verbose ("Checking whether message matches rule %s for connection %p\n", _dbus_verbose ("Checking whether message matches rule %s for connection %p\n",
s, rule->matches_go_to); s ? s : "nomem", rule->matches_go_to);
dbus_free (s); dbus_free (s);
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment