Andrew Eikum : regedit: Don't call ungetc() twice consecutively.
Alexandre Julliard
julliard at winehq.org
Mon Aug 23 10:50:20 CDT 2010
Module: wine
Branch: master
Commit: 06f4532cf6b434e0027ae892620e23e944ed20f5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=06f4532cf6b434e0027ae892620e23e944ed20f5
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Mon Aug 23 07:39:26 2010 -0500
regedit: Don't call ungetc() twice consecutively.
Spotted by Sylvain Hitier.
---
programs/regedit/regproc.c | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 82349f6..edf3d00 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -680,19 +680,18 @@ static void processRegLinesA(FILE *in, char* first_chars)
}
if(s[i] == '\r'){
/* read the next character iff it's \n */
+ if(i+2 >= size_to_get){
+ /* buffer too short, so put back the EOL char to
+ * read next cycle */
+ ungetc('\r', in);
+ break;
+ }
s[i+1] = fgetc(in);
if(s[i+1] != '\n'){
ungetc(s[i+1], in);
i = i+1;
- }else{
- if(i+2 >= size_to_get){
- /* buffer too short, so put back the EOL chars to
- * read next cycle */
- ungetc('\n', in);
- ungetc('\r', in);
- }else
- i = i+2;
- }
+ }else
+ i = i+2;
break;
}
if(s[i] == '\n'){
More information about the wine-cvs
mailing list