Magellan Linux

Annotation of /trunk/hal/patches/hal-0.5.10-add-udi-and-some-more-checks-to-libhal.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 597 - (hide annotations) (download)
Mon May 19 19:05:19 2008 UTC (16 years ago) by niro
File size: 21420 byte(s)
-gentoo patches

1 niro 597 From d96d1077179d6af09c2ad94b8757b5ed299b5383 Mon Sep 17 00:00:00 2001
2     From: Danny Kukawka <danny.kukawka@web.de>
3     Date: Thu, 6 Dec 2007 10:25:07 +0100
4     Subject: [PATCH] add udi and some more checks to libhal
5    
6     This adds:
7     - a minimal check if a given UDI is valid (checks if the UDI starts
8     with '/org/freedesktop/Hal/devices/'). This should prevent possible
9     (application) crashes if a invalid UDI is send to HAL and reduce
10     unneeded dbus calls.
11     - some more parameter checks (for LibHalChangeSet, keys ...)
12     ---
13     libhal/libhal.c | 152 ++++++++++++++++++++++++++++++++++++++----------------
14     1 files changed, 107 insertions(+), 45 deletions(-)
15    
16     diff --git a/libhal/libhal.c b/libhal/libhal.c
17     index 1e66bf4..3f6a9a0 100644
18     --- a/libhal/libhal.c
19     +++ b/libhal/libhal.c
20     @@ -74,6 +74,30 @@
21     } \
22     } while(0)
23    
24     +/**
25     + * LIBHAL_CHECK_UDI_VALID:
26     + * @_udi_: the UID to check for
27     + * @_ret_: what to use for return value if udi is invalid
28     + *
29     + * Handy macro for checking whether a UID is valid and not NULL.
30     + */
31     +#define LIBHAL_CHECK_UDI_VALID(_udi_,_ret_) \
32     + do { \
33     + if (_udi_ == NULL) { \
34     + fprintf (stderr, \
35     + "%s %d : invalid udi %s. udi is NULL.\n", \
36     + __FILE__, __LINE__, _udi_); \
37     + return _ret_; \
38     + } else { \
39     + if(strncmp(_udi_, "/org/freedesktop/Hal/devices/", 29) != 0) { \
40     + fprintf (stderr, \
41     + "%s %d : invalid udi: %s doesn't start" \
42     + "with '/org/freedesktop/Hal/devices/'. \n", \
43     + __FILE__, __LINE__, _udi_); \
44     + return _ret_; \
45     + } \
46     + } \
47     + } while(0)
48    
49     static char **libhal_get_string_array_from_iter (DBusMessageIter *iter, int *num_elements);
50    
51     @@ -319,6 +343,10 @@ static dbus_bool_t
52     libhal_property_fill_value_from_variant (LibHalProperty *p, DBusMessageIter *var_iter)
53     {
54     DBusMessageIter iter_array;
55     +
56     + LIBHAL_CHECK_PARAM_VALID(p, "LibHalProperty *p", FALSE);
57     + LIBHAL_CHECK_PARAM_VALID(var_iter, "DBusMessageIter *var_iter", FALSE);
58     +
59     switch (p->type) {
60     case DBUS_TYPE_ARRAY:
61     if (dbus_message_iter_get_element_type (var_iter) != DBUS_TYPE_STRING)
62     @@ -496,7 +524,7 @@ libhal_device_get_all_properties (LibHalContext *ctx, const char *udi, DBusError
63     DBusError _error;
64    
65     LIBHAL_CHECK_LIBHALCONTEXT(ctx, NULL);
66     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", NULL);
67     + LIBHAL_CHECK_UDI_VALID(udi, NULL);
68    
69     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
70     "org.freedesktop.Hal.Device",
71     @@ -1282,7 +1310,7 @@ libhal_device_get_property_type (LibHalContext *ctx, const char *udi, const char
72     DBusError _error;
73    
74     LIBHAL_CHECK_LIBHALCONTEXT(ctx, LIBHAL_PROPERTY_TYPE_INVALID); /* or return NULL? */
75     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", LIBHAL_PROPERTY_TYPE_INVALID);
76     + LIBHAL_CHECK_UDI_VALID(udi, LIBHAL_PROPERTY_TYPE_INVALID);
77     LIBHAL_CHECK_PARAM_VALID(key, "*key", LIBHAL_PROPERTY_TYPE_INVALID);
78    
79     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
80     @@ -1344,7 +1372,7 @@ libhal_device_get_property_strlist (LibHalContext *ctx, const char *udi, const c
81     DBusError _error;
82    
83     LIBHAL_CHECK_LIBHALCONTEXT(ctx, NULL);
84     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", NULL);
85     + LIBHAL_CHECK_UDI_VALID(udi, NULL);
86     LIBHAL_CHECK_PARAM_VALID(key, "*key", NULL);
87    
88     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
89     @@ -1417,7 +1445,7 @@ libhal_device_get_property_string (LibHalContext *ctx,
90     DBusError _error;
91    
92     LIBHAL_CHECK_LIBHALCONTEXT(ctx, NULL);
93     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", NULL);
94     + LIBHAL_CHECK_UDI_VALID(udi, NULL);
95     LIBHAL_CHECK_PARAM_VALID(key, "*key", NULL);
96    
97     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
98     @@ -1495,7 +1523,7 @@ libhal_device_get_property_int (LibHalContext *ctx,
99     DBusError _error;
100    
101     LIBHAL_CHECK_LIBHALCONTEXT(ctx, -1);
102     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", -1);
103     + LIBHAL_CHECK_UDI_VALID(udi, -1);
104     LIBHAL_CHECK_PARAM_VALID(key, "*key", -1);
105    
106     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
107     @@ -1568,7 +1596,7 @@ libhal_device_get_property_uint64 (LibHalContext *ctx,
108     DBusError _error;
109    
110     LIBHAL_CHECK_LIBHALCONTEXT(ctx, -1);
111     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", -1);
112     + LIBHAL_CHECK_UDI_VALID(udi, -1);
113     LIBHAL_CHECK_PARAM_VALID(key, "*key", -1);
114    
115     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
116     @@ -1640,7 +1668,7 @@ libhal_device_get_property_double (LibHalContext *ctx,
117     DBusError _error;
118    
119     LIBHAL_CHECK_LIBHALCONTEXT(ctx, -1.0);
120     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", -1.0);
121     + LIBHAL_CHECK_UDI_VALID(udi, -1.0);
122     LIBHAL_CHECK_PARAM_VALID(key, "*key", -1.0);
123    
124     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
125     @@ -1712,7 +1740,7 @@ libhal_device_get_property_bool (LibHalContext *ctx,
126     DBusError _error;
127    
128     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
129     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
130     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
131     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
132    
133     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
134     @@ -1782,7 +1810,7 @@ libhal_device_set_property_helper (LibHalContext *ctx,
135     char *method_name = NULL;
136    
137     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
138     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
139     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
140     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
141    
142     /** @todo sanity check incoming params */
143     @@ -1880,8 +1908,9 @@ libhal_device_set_property_string (LibHalContext *ctx,
144     DBusError *error)
145     {
146     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
147     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
148     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
149     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
150     + LIBHAL_CHECK_PARAM_VALID(value, "*value", FALSE);
151    
152     return libhal_device_set_property_helper (ctx, udi, key,
153     DBUS_TYPE_STRING,
154     @@ -1906,7 +1935,7 @@ libhal_device_set_property_int (LibHalContext *ctx, const char *udi,
155     const char *key, dbus_int32_t value, DBusError *error)
156     {
157     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
158     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
159     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
160     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
161    
162     return libhal_device_set_property_helper (ctx, udi, key,
163     @@ -1932,7 +1961,7 @@ libhal_device_set_property_uint64 (LibHalContext *ctx, const char *udi,
164     const char *key, dbus_uint64_t value, DBusError *error)
165     {
166     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
167     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
168     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
169     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
170    
171     return libhal_device_set_property_helper (ctx, udi, key,
172     @@ -1958,7 +1987,7 @@ libhal_device_set_property_double (LibHalContext *ctx, const char *udi,
173     const char *key, double value, DBusError *error)
174     {
175     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
176     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
177     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
178     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
179    
180     return libhal_device_set_property_helper (ctx, udi, key,
181     @@ -1984,7 +2013,7 @@ libhal_device_set_property_bool (LibHalContext *ctx, const char *udi,
182     const char *key, dbus_bool_t value, DBusError *error)
183     {
184     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
185     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
186     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
187     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
188    
189     return libhal_device_set_property_helper (ctx, udi, key,
190     @@ -2010,7 +2039,7 @@ libhal_device_remove_property (LibHalContext *ctx,
191     const char *udi, const char *key, DBusError *error)
192     {
193     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
194     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
195     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
196     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
197    
198     return libhal_device_set_property_helper (ctx, udi, key, DBUS_TYPE_INVALID,
199     @@ -2043,8 +2072,9 @@ libhal_device_property_strlist_append (LibHalContext *ctx,
200     DBusMessageIter iter;
201    
202     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
203     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
204     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
205     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
206     + LIBHAL_CHECK_PARAM_VALID(value, "*value", FALSE);
207    
208     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
209     "org.freedesktop.Hal.Device",
210     @@ -2098,8 +2128,9 @@ libhal_device_property_strlist_prepend (LibHalContext *ctx,
211     DBusMessageIter iter;
212    
213     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
214     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
215     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
216     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
217     + LIBHAL_CHECK_PARAM_VALID(value, "*value", FALSE);
218    
219     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
220     "org.freedesktop.Hal.Device",
221     @@ -2153,7 +2184,7 @@ libhal_device_property_strlist_remove_index (LibHalContext *ctx,
222     DBusMessageIter iter;
223    
224     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
225     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
226     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
227     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
228    
229     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
230     @@ -2207,8 +2238,9 @@ libhal_device_property_strlist_remove (LibHalContext *ctx,
231     DBusMessageIter iter;
232    
233     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
234     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
235     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
236     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
237     + LIBHAL_CHECK_PARAM_VALID(value, "*value", FALSE);
238    
239     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
240     "org.freedesktop.Hal.Device",
241     @@ -2261,7 +2293,7 @@ libhal_device_lock (LibHalContext *ctx,
242     DBusMessage *reply;
243    
244     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
245     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
246     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
247    
248     if (reason_why_locked != NULL)
249     *reason_why_locked = NULL;
250     @@ -2331,7 +2363,7 @@ libhal_device_unlock (LibHalContext *ctx,
251     DBusMessage *reply;
252    
253     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
254     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
255     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
256    
257     message = dbus_message_new_method_call ("org.freedesktop.Hal",
258     udi,
259     @@ -2468,8 +2500,8 @@ libhal_device_commit_to_gdl (LibHalContext *ctx,
260     DBusMessageIter iter;
261    
262     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
263     - LIBHAL_CHECK_PARAM_VALID(temp_udi, "*temp_udi", FALSE);
264     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
265     + LIBHAL_CHECK_UDI_VALID(temp_udi, FALSE);
266     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
267    
268     message = dbus_message_new_method_call ("org.freedesktop.Hal",
269     "/org/freedesktop/Hal/Manager",
270     @@ -2527,7 +2559,7 @@ libhal_remove_device (LibHalContext *ctx, const char *udi, DBusError *error)
271     DBusMessageIter iter;
272    
273     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
274     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
275     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
276    
277     message = dbus_message_new_method_call ("org.freedesktop.Hal",
278     "/org/freedesktop/Hal/Manager",
279     @@ -2581,7 +2613,7 @@ libhal_device_exists (LibHalContext *ctx, const char *udi, DBusError *error)
280     DBusError _error;
281    
282     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
283     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
284     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
285    
286     message = dbus_message_new_method_call ("org.freedesktop.Hal",
287     "/org/freedesktop/Hal/Manager",
288     @@ -2653,7 +2685,7 @@ libhal_device_property_exists (LibHalContext *ctx,
289     DBusError _error;
290    
291     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
292     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
293     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
294     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
295    
296     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
297     @@ -2722,8 +2754,8 @@ libhal_merge_properties (LibHalContext *ctx,
298     DBusMessageIter iter;
299    
300     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
301     - LIBHAL_CHECK_PARAM_VALID(target_udi, "*target_udi", FALSE);
302     - LIBHAL_CHECK_PARAM_VALID(source_udi, "*sourcE_udi", FALSE);
303     + LIBHAL_CHECK_UDI_VALID(target_udi, FALSE);
304     + LIBHAL_CHECK_UDI_VALID(source_udi, FALSE);
305    
306     message = dbus_message_new_method_call ("org.freedesktop.Hal",
307     "/org/freedesktop/Hal/Manager",
308     @@ -2791,8 +2823,8 @@ libhal_device_matches (LibHalContext *ctx,
309     DBusError _error;
310    
311     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
312     - LIBHAL_CHECK_PARAM_VALID(udi1, "*udi1", FALSE);
313     - LIBHAL_CHECK_PARAM_VALID(udi2, "*udi2", FALSE);
314     + LIBHAL_CHECK_UDI_VALID(udi1, FALSE);
315     + LIBHAL_CHECK_UDI_VALID(udi2, FALSE);
316     LIBHAL_CHECK_PARAM_VALID(property_namespace, "*property_namespace", FALSE);
317    
318     message = dbus_message_new_method_call ("org.freedesktop.Hal",
319     @@ -2863,7 +2895,7 @@ libhal_device_print (LibHalContext *ctx, const char *udi, DBusError *error)
320     LibHalPropertySetIterator i;
321    
322     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
323     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
324     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
325    
326     printf ("device_id = %s\n", udi);
327    
328     @@ -2952,6 +2984,7 @@ libhal_manager_find_device_string_match (LibHalContext *ctx,
329    
330     LIBHAL_CHECK_LIBHALCONTEXT(ctx, NULL);
331     LIBHAL_CHECK_PARAM_VALID(key, "*key", NULL);
332     + LIBHAL_CHECK_PARAM_VALID(value, "*value", NULL);
333    
334     message = dbus_message_new_method_call ("org.freedesktop.Hal",
335     "/org/freedesktop/Hal/Manager",
336     @@ -3021,7 +3054,7 @@ libhal_device_add_capability (LibHalContext *ctx,
337     DBusMessageIter iter;
338    
339     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
340     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
341     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
342     LIBHAL_CHECK_PARAM_VALID(capability, "*capability", FALSE);
343    
344     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
345     @@ -3076,7 +3109,7 @@ libhal_device_query_capability (LibHalContext *ctx, const char *udi, const char
346     dbus_bool_t ret;
347    
348     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
349     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
350     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
351     LIBHAL_CHECK_PARAM_VALID(capability, "*capability", FALSE);
352    
353     ret = FALSE;
354     @@ -3211,7 +3244,7 @@ libhal_device_add_property_watch (LibHalContext *ctx, const char *udi, DBusError
355     char buf[512];
356    
357     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
358     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
359     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
360    
361     snprintf (buf, 512,
362     "type='signal',"
363     @@ -3242,7 +3275,7 @@ libhal_device_remove_property_watch (LibHalContext *ctx, const char *udi, DBusEr
364     char buf[512];
365    
366     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
367     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
368     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
369    
370     snprintf (buf, 512,
371     "type='signal',"
372     @@ -3685,7 +3718,7 @@ libhal_device_rescan (LibHalContext *ctx, const char *udi, DBusError *error)
373     dbus_bool_t result;
374    
375     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
376     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
377     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
378    
379     message = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
380     "org.freedesktop.Hal.Device",
381     @@ -3745,7 +3778,7 @@ libhal_device_reprobe (LibHalContext *ctx, const char *udi, DBusError *error)
382     dbus_bool_t result;
383    
384     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
385     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
386     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
387    
388     message = dbus_message_new_method_call ("org.freedesktop.Hal",
389     udi,
390     @@ -3813,8 +3846,9 @@ dbus_bool_t libhal_device_emit_condition (LibHalContext *ctx,
391     dbus_bool_t result;
392    
393     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
394     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
395     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
396     LIBHAL_CHECK_PARAM_VALID(condition_name, "*condition_name", FALSE);
397     + LIBHAL_CHECK_PARAM_VALID(condition_details, "*condition_details", FALSE);
398    
399     message = dbus_message_new_method_call ("org.freedesktop.Hal",
400     udi,
401     @@ -3879,6 +3913,7 @@ addon_is_ready(LibHalContext *ctx, const char *identifier,
402     DBusMessage *reply;
403    
404     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
405     + LIBHAL_CHECK_PARAM_VALID(identifier, "*identifier", FALSE);
406    
407     if (singleton) {
408     message = dbus_message_new_method_call ("org.freedesktop.Hal",
409     @@ -3940,6 +3975,10 @@ libhal_device_addon_is_ready (LibHalContext *ctx,
410     const char *udi,
411     DBusError *error)
412     {
413     +
414     + LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
415     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
416     +
417     return addon_is_ready (ctx, udi, FALSE, error);
418     }
419    
420     @@ -3961,6 +4000,9 @@ libhal_device_singleton_addon_is_ready (LibHalContext *ctx,
421     const char *command_line,
422     DBusError *error)
423     {
424     + LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
425     + LIBHAL_CHECK_PARAM_VALID(command_line, "*command_line", FALSE);
426     +
427     return addon_is_ready (ctx, command_line, TRUE, error);
428     }
429    
430     @@ -3993,7 +4035,7 @@ libhal_device_claim_interface (LibHalContext *ctx,
431     dbus_bool_t result;
432    
433     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
434     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
435     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
436     LIBHAL_CHECK_PARAM_VALID(interface_name, "*interface_name", FALSE);
437    
438     message = dbus_message_new_method_call ("org.freedesktop.Hal",
439     @@ -4081,7 +4123,7 @@ libhal_device_new_changeset (const char *udi)
440     {
441     LibHalChangeSet *changeset;
442    
443     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", NULL);
444     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
445    
446     changeset = calloc (1, sizeof (LibHalChangeSet));
447     if (changeset == NULL)
448     @@ -4104,6 +4146,9 @@ out:
449     static void
450     libhal_changeset_append (LibHalChangeSet *changeset, LibHalChangeSetElement *elem)
451     {
452     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", (void) NULL );
453     + LIBHAL_CHECK_PARAM_VALID(elem, "*elem", (void) NULL);
454     +
455     if (changeset->head == NULL) {
456     changeset->head = elem;
457     changeset->tail = elem;
458     @@ -4133,6 +4178,7 @@ libhal_changeset_set_property_string (LibHalChangeSet *changeset, const char *ke
459     {
460     LibHalChangeSetElement *elem;
461    
462     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
463     LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
464     LIBHAL_CHECK_PARAM_VALID(value, "*value", FALSE);
465    
466     @@ -4175,6 +4221,9 @@ libhal_changeset_set_property_int (LibHalChangeSet *changeset, const char *key,
467     {
468     LibHalChangeSetElement *elem;
469    
470     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
471     + LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
472     +
473     elem = calloc (1, sizeof (LibHalChangeSetElement));
474     if (elem == NULL)
475     goto out;
476     @@ -4208,6 +4257,9 @@ libhal_changeset_set_property_uint64 (LibHalChangeSet *changeset, const char *ke
477     {
478     LibHalChangeSetElement *elem;
479    
480     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
481     + LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
482     +
483     elem = calloc (1, sizeof (LibHalChangeSetElement));
484     if (elem == NULL)
485     goto out;
486     @@ -4241,6 +4293,9 @@ libhal_changeset_set_property_double (LibHalChangeSet *changeset, const char *ke
487     {
488     LibHalChangeSetElement *elem;
489    
490     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
491     + LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
492     +
493     elem = calloc (1, sizeof (LibHalChangeSetElement));
494     if (elem == NULL)
495     goto out;
496     @@ -4274,6 +4329,9 @@ libhal_changeset_set_property_bool (LibHalChangeSet *changeset, const char *key,
497     {
498     LibHalChangeSetElement *elem;
499    
500     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
501     + LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
502     +
503     elem = calloc (1, sizeof (LibHalChangeSetElement));
504     if (elem == NULL)
505     goto out;
506     @@ -4310,6 +4368,9 @@ libhal_changeset_set_property_strlist (LibHalChangeSet *changeset, const char *k
507     int len;
508     int i, j;
509    
510     + LIBHAL_CHECK_PARAM_VALID(changeset, "*changeset", FALSE);
511     + LIBHAL_CHECK_PARAM_VALID(key, "*key", FALSE);
512     +
513     elem = calloc (1, sizeof (LibHalChangeSetElement));
514     if (elem == NULL)
515     goto out;
516     @@ -4380,6 +4441,7 @@ libhal_device_commit_changeset (LibHalContext *ctx, LibHalChangeSet *changeset,
517     int i;
518    
519     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
520     + LIBHAL_CHECK_UDI_VALID(changeset->udi, FALSE);
521    
522     if (changeset->head == NULL) {
523     return TRUE;
524     @@ -4547,7 +4609,7 @@ libhal_device_acquire_interface_lock (LibHalContext *ctx,
525     DBusMessage *reply;
526    
527     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
528     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
529     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
530     LIBHAL_CHECK_PARAM_VALID(interface, "*interface", FALSE);
531    
532     message = dbus_message_new_method_call ("org.freedesktop.Hal",
533     @@ -4605,7 +4667,7 @@ dbus_bool_t libhal_device_release_interface_lock (LibHalContext *ctx,
534     DBusMessage *reply;
535    
536     LIBHAL_CHECK_LIBHALCONTEXT(ctx, FALSE);
537     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", FALSE);
538     + LIBHAL_CHECK_UDI_VALID(udi, FALSE);
539     LIBHAL_CHECK_PARAM_VALID(interface, "*interface", FALSE);
540    
541     message = dbus_message_new_method_call ("org.freedesktop.Hal",
542     @@ -4780,7 +4842,7 @@ libhal_device_is_caller_locked_out (LibHalContext *ctx,
543     dbus_bool_t value;
544    
545     LIBHAL_CHECK_LIBHALCONTEXT(ctx, TRUE);
546     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", TRUE);
547     + LIBHAL_CHECK_UDI_VALID(udi, TRUE);
548     LIBHAL_CHECK_PARAM_VALID(interface, "*interface", TRUE);
549     LIBHAL_CHECK_PARAM_VALID(caller, "*caller", TRUE);
550    
551     @@ -4922,7 +4984,7 @@ libhal_device_is_locked_by_others (LibHalContext *ctx,
552     dbus_bool_t value;
553    
554     LIBHAL_CHECK_LIBHALCONTEXT(ctx, TRUE);
555     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", TRUE);
556     + LIBHAL_CHECK_UDI_VALID(udi, TRUE);
557     LIBHAL_CHECK_PARAM_VALID(interface, "*interface", TRUE);
558    
559     message = dbus_message_new_method_call ("org.freedesktop.Hal",
560     @@ -4998,7 +5060,7 @@ libhal_device_is_caller_privileged (LibHalContext *ctx,
561     char *value;
562    
563     LIBHAL_CHECK_LIBHALCONTEXT(ctx, NULL);
564     - LIBHAL_CHECK_PARAM_VALID(udi, "*udi", NULL);
565     + LIBHAL_CHECK_UDI_VALID(udi, NULL);
566     LIBHAL_CHECK_PARAM_VALID(action, "*action", NULL);
567     LIBHAL_CHECK_PARAM_VALID(caller, "*caller", NULL);
568    
569     --
570     1.5.3.7
571