[Libvir] [PATCH] Fix the function that remove the element of the hash table.

Hiroyuki Kaguchi fj7025cf at aa.jp.fujitsu.com
Thu Feb 7 02:49:59 UTC 2008


The reappearance procedures:

#1 The logic error that use released memory area.
1. define two or more domains which are same hash key.
    (ex. the domain names are "domain_01" and "domain_28")
2. execute virsh by interactive mode
3. execute "list --all" command.
4. undefine a domain on another session.
    (ex. undefine domain_28)
5. execute "list --all" command.
Segmentation Fault occur.

#2 The logic error that doesn't remove elements.
1. define two or more domains which are same hash key.
2. execute virsh by interactive mode
3. execute "list --all" command.
4. undefine the defined domains on another session.
5. execute "list --all" command.
A domain is not removed from the list during the fixed time(10sec).

On 2008/02/06 17:38, Jim Meyering wrote:
> Hiroyuki Kaguchi <fj7025cf at aa.jp.fujitsu.com> wrote:
>> Though this patch has not been applied yet, are there any problems in this patch?
>> If there is no problem, could you apply this patch ?
>>
>> (2008/01/29 23:45), Daniel P. Berrange wrote:
>>> On Tue, Jan 29, 2008 at 11:32:04AM +0900, Hiroyuki Kaguchi wrote:
>>>> There are two logic error and a unnecessary else-statement
>>>> in virHashRemoveSet function.
>>>>
>>>> This patch fix the following.
>>>> (1/3) The logic error that use released memory area.
>>>> (2/3) The logic error that doesn't remove elements.
> 
> Considering your analysis, I'm sure there's no problem.  However, it
> would be far easier to accept if we could easily demonstrate the failures.
> Can you provide a stand-alone test case that provokes #1 and #2?
> 
> Ideally, it would be in the form of a main program that initializes
> a hash table, performs some inserts and then performs the
> offending deletion.
> 
> Bonus points if you also add a test case (run by "make check")
> that fails before your patch and passes once it's applied.
> 
>>>> (3/3) Unnecessary else-statement.
> 
> 





More information about the libvir-list mailing list