X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.c;h=ad3ad217d5db1aabad06bc267f39b4bab0a7082f;hb=2b39e1bd64223659303afb113da273eb8499db6e;hp=b986c838610c8c691aac62f769ba473099a9be50;hpb=14bda0e9c2ceecb14bce0710a92e033e5727a94b;p=swftools.git diff --git a/lib/rfxswf.c b/lib/rfxswf.c index b986c83..ad3ad21 100644 --- a/lib/rfxswf.c +++ b/lib/rfxswf.c @@ -83,7 +83,16 @@ void swf_SetTagPos(TAG * t,U32 pos) char* swf_GetString(TAG*t) { char* str = ((char*)(&(t)->data[(t)->pos])); - while(swf_GetU8(t)); + while(t->pos < t->len && swf_GetU8(t)); + /* make sure we always have a trailing zero byte */ + if(t->pos == t->len) { + if(t->len == t->memsize) { + swf_ResetWriteBits(t); + swf_SetU8(t, 0); + t->len = t->pos; + } + t->data[t->len] = 0; + } return str; }