diff --git a/src/pk-backend.c b/src/pk-backend.c index e719b49..939282d 100644 --- a/src/pk-backend.c +++ b/src/pk-backend.c @@ -737,6 +737,9 @@ pk_backend_change_status (PkBackend *backend, PkStatusEnum status) gboolean pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package, const gchar *summary) { + gchar *summary_sane; + const gchar *delimiters; + g_return_val_if_fail (backend != NULL, FALSE); g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE); @@ -744,8 +747,14 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package, c g_free (backend->priv->last_package); backend->priv->last_package = g_strdup (package); - pk_debug ("emit package %i, %s, %s", info, package, summary); - g_signal_emit (backend, signals [PK_BACKEND_PACKAGE], 0, info, package, summary); + /* rip out any insane characters from the summary */ + delimiters = "\\\f\n\r\t\"'"; + summary_sane = g_strdup (summary); + g_strdelimit (summary_sane, delimiters, ' '); + + pk_debug ("emit package %i, %s, %s", info, package, summary_sane); + g_signal_emit (backend, signals [PK_BACKEND_PACKAGE], 0, info, package, summary_sane); + g_free (summary_sane); return TRUE; }