qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] blkdebug: Use QLIST_FOREACH_SAFE to resume IO


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH] blkdebug: Use QLIST_FOREACH_SAFE to resume IO
Date: Fri, 13 Dec 2013 17:13:01 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Am 13.12.2013 um 08:25 hat Fam Zheng geschrieben:
> Qemu-iotest 030 was broken.
> 
> When the coroutine runs and finishes, it will remove itself from the req
> list, so let's use safe version of foreach to avoid use after free.
> 
> Signed-off-by: Fam Zheng <address@hidden>

Thanks, applied to the block branch.

> diff --git a/block/blkdebug.c b/block/blkdebug.c
> index 37cf028..957be2c 100644
> --- a/block/blkdebug.c
> +++ b/block/blkdebug.c
> @@ -594,9 +594,9 @@ static int blkdebug_debug_breakpoint(BlockDriverState 
> *bs, const char *event,
>  static int blkdebug_debug_resume(BlockDriverState *bs, const char *tag)
>  {
>      BDRVBlkdebugState *s = bs->opaque;
> -    BlkdebugSuspendedReq *r;
> +    BlkdebugSuspendedReq *r, *next;
>  
> -    QLIST_FOREACH(r, &s->suspended_reqs, next) {
> +    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, next) {
>          if (!strcmp(r->tag, tag)) {
>              qemu_coroutine_enter(r->co, NULL);
>              return 0;

This hunk wasn't strictly necessary because of the return 0, but it
doesn't hurt either.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]