diff --git a/block-vvfat.c b/block-vvfat.c index 708f031fd8..873956d3b0 100644 --- a/block-vvfat.c +++ b/block-vvfat.c @@ -415,14 +415,16 @@ static void init_mbr(BDRVVVFATState* s) static inline int short2long_name(char* dest,const char* src) { int i; + int len; for(i=0;i<129 && src[i];i++) { dest[2*i]=src[i]; dest[2*i+1]=0; } + len=2*i; dest[2*i]=dest[2*i+1]=0; for(i=2*i+2;(i%26);i++) dest[i]=0xff; - return i; + return len; } static inline direntry_t* create_long_filename(BDRVVVFATState* s,const char* filename) @@ -439,7 +441,7 @@ static inline direntry_t* create_long_filename(BDRVVVFATState* s,const char* fil entry->begin=0; entry->name[0]=(number_of_entries-i)|(i==0?0x40:0); } - for(i=0;i