| #include <stdlib.h> |
| #include <stdint.h> |
| #include <string.h> |
| #include <poppler.h> |
| |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
| { |
| GError *err = NULL; |
| PopplerDocument *doc; |
| PopplerPage *page; |
| char *buf; |
| int npages; |
| |
| doc = poppler_document_new_from_data((char *)data, size, NULL, &err); |
| if (doc == NULL) { |
| g_error_free(err); |
| return 0; |
| } |
| |
| npages = poppler_document_get_n_pages(doc); |
| if (npages < 1) { |
| return 0; |
| } |
| |
| buf = (char *)calloc(size + 1, sizeof(char)); |
| memcpy(buf, data, size); |
| buf[size] = '\0'; |
| |
| for (int n = 0; n < npages; n++) { |
| page = poppler_document_get_page_by_label(doc, buf); |
| if (!page) { |
| continue; |
| } |
| g_object_unref(page); |
| } |
| free(buf); |
| return 0; |
| } |