- fseek(fp, partinfo->offset, SEEK_SET);
- headers = procheader_get_header_array_asis(fp);
- if (headers) {
- gint i;
- for (i = 0; i < headers->len; i++) {
- Header *header = g_ptr_array_index(headers, i);
- if (procheader_headername_equal(header->name, "Subject")) {
- unfold_line(header->body);
- name = g_strconcat(header->body, ".txt", NULL);
- subst_for_filename(name);
+ if (fp != NULL && fseek(fp, partinfo->offset, SEEK_SET) == 0) {
+ headers = procheader_get_header_array_asis(fp);
+ if (headers) {
+ gint i;
+ for (i = 0; i < headers->len; i++) {
+ Header *header = g_ptr_array_index(headers, i);
+ if (procheader_headername_equal(header->name, "Subject")) {
+ unfold_line(header->body);
+ name = g_strconcat(header->body, ".txt", NULL);
+ subst_for_filename(name);
+ }