aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/k12text.l20
1 files changed, 11 insertions, 9 deletions
diff --git a/wiretap/k12text.l b/wiretap/k12text.l
index 4cdea9c951..d9b022ab88 100644
--- a/wiretap/k12text.l
+++ b/wiretap/k12text.l
@@ -115,8 +115,8 @@
*/
typedef struct {
FILE_T fh;
- int *err;
- gchar **err_info;
+ int err;
+ gchar *err_info;
int start_state;
guint g_h;
@@ -153,10 +153,10 @@ typedef struct {
k12text_state_t *scanner_state = k12text_get_extra(yyscanner); \
int c = file_getc(scanner_state->fh); \
if (c == EOF) { \
- *(scanner_state->err) = file_error(scanner_state->fh, \
- scanner_state->err_info); \
- if (*(scanner_state->err) == 0) \
- *(scanner_state->err) = WTAP_ERR_SHORT_READ; \
+ scanner_state->err = file_error(scanner_state->fh, \
+ &scanner_state->err_info); \
+ if (scanner_state->err == 0) \
+ scanner_state->err = WTAP_ERR_SHORT_READ; \
result = YY_NULL; \
} else { \
buf[0] = c; \
@@ -305,8 +305,8 @@ k12text_run_scanner(k12text_state_t *state, FILE_T fh, int start_state,
return FALSE;
}
state->fh = fh;
- state->err = err;
- state->err_info = err_info;
+ state->err = 0;
+ state->err_info = NULL;
state->start_state = start_state;
state->g_encap = WTAP_ENCAP_UNKNOWN;
@@ -328,8 +328,10 @@ k12text_run_scanner(k12text_state_t *state, FILE_T fh, int start_state,
yylex(scanner);
yylex_destroy(scanner);
- if (*err != 0 && *err != WTAP_ERR_SHORT_READ) {
+ if (state->err != 0 && state->err != WTAP_ERR_SHORT_READ) {
/* I/O error. */
+ *err = state->err;
+ *err_info = state->err_info;
return FALSE;
}
return TRUE;