diff options
author | Martyn Russell <martyn@lanedo.com> | 2010-05-27 12:17:24 +0100 |
---|---|---|
committer | Martyn Russell <martyn@lanedo.com> | 2010-05-27 12:17:24 +0100 |
commit | aa1fde1b95cbff9f3914469bef22e767131a2605 (patch) | |
tree | fe06244526a1995c688a2ef363be1afba217d66d | |
parent | c04cf0b14e6e917d03b60a68389c5da0806f57d5 (diff) | |
download | tracker-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.c | 7 |
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); } |