=== modified file 'notifier/dbus.c' --- notifier/dbus.c 2011-03-04 16:55:59 +0000 +++ notifier/dbus.c 2011-11-29 16:00:54 +0000 @@ -363,7 +363,8 @@ attr = ippFindAttribute(msg, "notify-text", IPP_TAG_TEXT); if (!attr) goto bail; - dbus_message_iter_append_string(&iter, &(attr->values[0].string.text)); + if (!dbus_message_iter_append_string(&iter, &(attr->values[0].string.text))) + goto bail; if (params >= PARAMS_PRINTER) { @@ -375,11 +376,15 @@ /* STRING printer-uri or "" */ attr = ippFindAttribute(msg, "notify-printer-uri", IPP_TAG_URI); if (attr) - dbus_message_iter_append_string(&iter, &(attr->values[0].string.text)); + { + if (!dbus_message_iter_append_string(&iter, &(attr->values[0].string.text))) + goto bail; + } else { have_printer_params = 0; - dbus_message_iter_append_string(&iter, &nul); + if (!dbus_message_iter_append_string(&iter, &nul)) + goto bail; } /* STRING printer-name */ @@ -387,25 +392,33 @@ { attr = ippFindAttribute(msg, "printer-name", IPP_TAG_NAME); if (attr) - dbus_message_iter_append_string(&iter, - &(attr->values[0].string.text)); + { + if (!dbus_message_iter_append_string(&iter, + &(attr->values[0].string.text))) + goto bail; + } else goto bail; } else - dbus_message_iter_append_string(&iter, &nul); + { + if (!dbus_message_iter_append_string(&iter, &nul)) + goto bail; + } /* UINT32 printer-state */ if (have_printer_params) { attr = ippFindAttribute(msg, "printer-state", IPP_TAG_ENUM); - if (attr) - dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer)); - else + if (!attr || + !dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer))) goto bail; } else - dbus_message_iter_append_uint32(&iter, &no); + { + if (!dbus_message_iter_append_uint32(&iter, &no)) + goto bail; + } /* STRING printer-state-reasons */ if (have_printer_params) @@ -428,26 +441,32 @@ if (i) *p++ = ','; } - dbus_message_iter_append_string(&iter, &printer_reasons); + if (!dbus_message_iter_append_string(&iter, &printer_reasons)) + goto bail; } else goto bail; } else - dbus_message_iter_append_string(&iter, &nul); + { + if (!dbus_message_iter_append_string(&iter, &nul)) + goto bail; + } /* BOOL printer-is-accepting-jobs */ if (have_printer_params) { attr = ippFindAttribute(msg, "printer-is-accepting-jobs", IPP_TAG_BOOLEAN); - if (attr) - dbus_message_iter_append_boolean(&iter, &(attr->values[0].boolean)); - else + if (!attr || + !dbus_message_iter_append_boolean(&iter, &(attr->values[0].boolean))) goto bail; } else - dbus_message_iter_append_boolean(&iter, &no); + { + if (!dbus_message_iter_append_boolean(&iter, &no)) + goto bail; + } } if (params >= PARAMS_JOB) @@ -456,33 +475,43 @@ attr = ippFindAttribute(msg, "notify-job-id", IPP_TAG_INTEGER); if (!attr) goto bail; - dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer)); + if (!dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer))) + goto bail; /* UINT32 job-state */ attr = ippFindAttribute(msg, "job-state", IPP_TAG_ENUM); if (!attr) goto bail; - dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer)); + if (!dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer))) + goto bail; /* STRING job-state-reasons */ attr = ippFindAttribute(msg, "job-state-reasons", IPP_TAG_KEYWORD); if (!attr) goto bail; - dbus_message_iter_append_string(&iter, &(attr->values[0].string.text)); + if (!dbus_message_iter_append_string(&iter, &(attr->values[0].string.text))) + goto bail; /* STRING job-name or "" */ attr = ippFindAttribute(msg, "job-name", IPP_TAG_NAME); if (attr) - dbus_message_iter_append_string(&iter, &(attr->values[0].string.text)); + { + if (!dbus_message_iter_append_string(&iter, &(attr->values[0].string.text))) + goto bail; + } else - dbus_message_iter_append_string(&iter, &nul); + { + if (!dbus_message_iter_append_string(&iter, &nul)) + goto bail; + } /* UINT32 job-impressions-completed */ attr = ippFindAttribute(msg, "job-impressions-completed", IPP_TAG_INTEGER); if (!attr) goto bail; - dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer)); + if (!dbus_message_iter_append_uint32(&iter, &(attr->values[0].integer))) + goto bail; } dbus_connection_send(con, message, NULL);