Module: wine Branch: master Commit: db30aa149ed90781973fdf2878d42702b91754cf URL: http://source.winehq.org/git/wine.git/?a=commit;h=db30aa149ed90781973fdf2878...
Author: Christian Costa titan.costa@wanadoo.fr Date: Tue Feb 10 14:07:19 2009 +0100
d3dxof: Make is_keyword handle end of file correctly.
---
dlls/d3dxof/parsing.c | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dxof/parsing.c b/dlls/d3dxof/parsing.c index 13fc5bb..c849e5a 100644 --- a/dlls/d3dxof/parsing.c +++ b/dlls/d3dxof/parsing.c @@ -273,10 +273,20 @@ static WORD get_operator_token(char c)
static BOOL is_keyword(parse_buffer* buf, const char* keyword) { - char tmp[9]; /* template keyword size + 1 */ + char tmp[8]; /* longest keyword size (template) */ DWORD len = strlen(keyword); - read_bytes(buf, tmp, len+1); - if (!strncasecmp(tmp, keyword,len) && is_separator(tmp[len])) + + if (!read_bytes(buf, tmp, len)) + return FALSE; + if (strncasecmp(tmp, keyword, len)) + { + rewind_bytes(buf, len); + return FALSE; + } + + if (!read_bytes(buf, tmp, 1)) + return TRUE; + if (is_separator(tmp[0])) { rewind_bytes(buf, 1); return TRUE;