[PATCH] regedit: fgetc() gets int, not char (Coverity)

Marcus Meissner meissner at suse.de
Wed Feb 23 10:20:43 CST 2011


Hi,

fgetc() returns integer wide ints, but the only one
outside of "char" scope is "EOF". So use a int temporary
and check EOF against it.

Ciao, Marcus
---
 programs/regedit/regproc.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index ff97970..f753947 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -664,8 +664,11 @@ static void processRegLinesA(FILE *in, char* first_chars)
             /* get a single line. note that `i' must be one past the last
              * meaningful character in `s' when this loop exits */
             for(i = 0; i < size_to_get-1; ++i){
-                s[i] = fgetc(in);
-                if(s[i] == EOF){
+                int xchar;
+
+                xchar = fgetc(in);
+                s[i] = xchar;
+                if(xchar == EOF){
                     if(ferror(in)){
                         perror("While reading input");
                         exit(IO_ERROR);
-- 
1.7.1



More information about the wine-patches mailing list