summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartyn Russell <martyn@lanedo.com>2010-05-27 12:17:24 +0100
committerMartyn Russell <martyn@lanedo.com>2010-05-27 12:17:24 +0100
commitaa1fde1b95cbff9f3914469bef22e767131a2605 (patch)
treefe06244526a1995c688a2ef363be1afba217d66d
parentc04cf0b14e6e917d03b60a68389c5da0806f57d5 (diff)
downloadtracker-aa1fde1b95cbff9f3914469bef22e767131a2605.tar.gz
tracker-extract: PDF: Don't let the PDF extractor work for more than 5s
Fixes NB#167449, don't allow PDF extractor to consume more than 5s
-rw-r--r--src/tracker-extract/tracker-extract-pdf.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tracker-extract/tracker-extract-pdf.c b/src/tracker-extract/tracker-extract-pdf.c
index 6db5aeea3..6dbdba9ae 100644
--- a/src/tracker-extract/tracker-extract-pdf.c
+++ b/src/tracker-extract/tracker-extract-pdf.c
@@ -226,12 +226,15 @@ extract_content (PopplerDocument *document,
GString *string;
gint n_pages, i, words;
gchar *text, *t;
+ GTimer *timer;
n_pages = poppler_document_get_n_pages (document);
string = g_string_new ("");
words = i = 0;
- while (i < n_pages && words < n_words) {
+ timer = g_timer_new ();
+
+ while (i < n_pages && words < n_words && g_timer_elapsed (timer, NULL) < 5) {
gint normalized_words;
page = poppler_document_get_page (document, i);
@@ -251,6 +254,8 @@ extract_content (PopplerDocument *document,
g_object_unref (page);
}
+ g_timer_destroy (timer);
+
return g_string_free (string, FALSE);
}