Hi, thanks for you reply.
2012/9/5 Paolo Bonzini <pbonz...@redhat.com>:
> Il 05/09/2012 15:26, riegama...@gmail.com ha scritto:
>> From: Dunrong Huang <riegama...@gmail.com>
>>
>> The caller would not delete temporary file after failed get_tmp_filename().
>>
>> Signed-off-by: Dunrong Huang <riegama...@gmail.com>
>> ---
>>  block.c | 6 +++++-
>>  1 个文件被修改,插入 5 行(+),删除 1 行(-)
>>
>> diff --git a/block.c b/block.c
>> index 074987e..2bc9f75 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -433,7 +433,11 @@ int get_tmp_filename(char *filename, int size)
>>          return -EOVERFLOW;
>>      }
>>      fd = mkstemp(filename);
>> -    if (fd < 0 || close(fd)) {
>> +    if (fd < 0) {
>> +        return -errno;
>> +    }
>> +    if (close(fd) != 0) {
>> +        unlink(filename);
>>          return -errno;
>>      }
>>      return 0;
>>
>
> Not necessary, mkstemp will not create a file if it returns an error.
>
If we call mkstemp() successfully, but failed to close(fd),
in this case, the temporafy file will not be deleted even if QEMU exits.
> Paolo



-- 
Best Regards,

Dunrong Huang

Reply via email to