From aa63a122433d51e89148af27dab98cf68846dab4 Mon Sep 17 00:00:00 2001 From: Raghavendra G Date: Tue, 31 Mar 2009 11:18:55 -0700 Subject: Avoid infinite loop while parsing volume specification files on Linux/ARM. - patch submitted by anonymous user (ref: bug #26006 on savannah). Signed-off-by: Anand V. Avati --- libglusterfs/src/spec.y | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libglusterfs/src/spec.y') diff --git a/libglusterfs/src/spec.y b/libglusterfs/src/spec.y index 4de77a431ca..f0a0caea122 100644 --- a/libglusterfs/src/spec.y +++ b/libglusterfs/src/spec.y @@ -470,8 +470,9 @@ parse_backtick (FILE *srcfp, FILE *dstfp) int ret = 0, i = 0; char *cmd = NULL, *result = NULL; size_t cmd_buf_size = GF_CMD_BUFFER_LEN; - char escaped = 0, in_backtick = 0, character = 0; + char escaped = 0, in_backtick = 0; int line = 1, column = 0, backtick_line = 0, backtick_column = 0; + int character = 0; fseek (srcfp, 0L, SEEK_SET); fseek (dstfp, 0L, SEEK_SET); @@ -486,7 +487,8 @@ parse_backtick (FILE *srcfp, FILE *dstfp) return -1; } - while ((character = fgetc (srcfp)) != EOF) { + while (!feof (srcfp)) { + character = fgetc (srcfp); if ((character == '`') && !escaped) { if (in_backtick) { cmd[i] = '\0'; -- cgit