From 207a75388a534a38e23d4f5c1068037cd5f26b91 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Thu, 25 Feb 2010 20:45:59 +0000 Subject: Have parse_ascend() return: PARSED_RECORD if we got a packet; PARSED_NONRECORD if the parser succeeded but didn't see a packet; PARSE_FAILED if the parser failed. Treat anything other than PARSED_RECORD as a failure, for now; I'm not sure why we were treating "parser succeeded but didn't see a packet" as success, as that was causing us to recognize some non-Ascend-output text files as Ascend files and to return "records" with bogus caplen and len values. svn path=/trunk/; revision=32009 --- wiretap/ascendtext.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'wiretap/ascendtext.c') diff --git a/wiretap/ascendtext.c b/wiretap/ascendtext.c index f8597ae245..e019f94532 100644 --- a/wiretap/ascendtext.c +++ b/wiretap/ascendtext.c @@ -190,7 +190,8 @@ int ascend_open(wtap *wth, int *err, gchar **err_info _U_) /* Do a trial parse of the first packet just found to see if we might really have an Ascend file */ init_parse_ascend(); - if (! parse_ascend(wth->fh, buf, &wth->pseudo_header.ascend, &header, &dummy_seek_start)) { + if (parse_ascend(wth->fh, buf, &wth->pseudo_header.ascend, &header, + &dummy_seek_start) != PARSED_RECORD) { return 0; } @@ -279,7 +280,8 @@ static gboolean ascend_read(wtap *wth, int *err, gchar **err_info, offset = ascend_seek(wth, err); if (offset == -1) return FALSE; - if (! parse_ascend(wth->fh, buf, &wth->pseudo_header.ascend, &header, &(wth->capture.ascend->next_packet_seek_start))) { + if (parse_ascend(wth->fh, buf, &wth->pseudo_header.ascend, &header, + &(wth->capture.ascend->next_packet_seek_start)) != PARSED_RECORD) { *err = WTAP_ERR_BAD_RECORD; *err_info = g_strdup((ascend_parse_error != NULL) ? ascend_parse_error : "parse error"); return FALSE; @@ -327,7 +329,8 @@ static gboolean ascend_seek_read(wtap *wth, gint64 seek_off, if (file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1) return FALSE; - if (! parse_ascend(wth->random_fh, pd, &pseudo_head->ascend, NULL, &(wth->capture.ascend->next_packet_seek_start))) { + if (parse_ascend(wth->random_fh, pd, &pseudo_head->ascend, NULL, + &(wth->capture.ascend->next_packet_seek_start)) != PARSED_RECORD) { *err = WTAP_ERR_BAD_RECORD; *err_info = g_strdup((ascend_parse_error != NULL) ? ascend_parse_error : "parse error"); return FALSE; -- cgit v1.2.3