Commit 4a7947aa authored by Pavel Emelyanov's avatar Pavel Emelyanov

page-read: Don't let pr->pe remain NULL

CID 172196, issues/233.

The advance method can keep pr->pe NULL while the rest of
the code doesn't count on that.
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
Acked-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
parent 5d8e80d6
...@@ -162,7 +162,7 @@ static void skip_pagemap_pages(struct page_read *pr, unsigned long len) ...@@ -162,7 +162,7 @@ static void skip_pagemap_pages(struct page_read *pr, unsigned long len)
static int seek_pagemap(struct page_read *pr, unsigned long vaddr) static int seek_pagemap(struct page_read *pr, unsigned long vaddr)
{ {
if (!pr->pe) if (!pr->pe)
advance(pr); goto adv;
do { do {
unsigned long start = pr->pe->vaddr; unsigned long start = pr->pe->vaddr;
...@@ -179,6 +179,8 @@ static int seek_pagemap(struct page_read *pr, unsigned long vaddr) ...@@ -179,6 +179,8 @@ static int seek_pagemap(struct page_read *pr, unsigned long vaddr)
if (end <= vaddr) if (end <= vaddr)
skip_pagemap_pages(pr, end - pr->cvaddr); skip_pagemap_pages(pr, end - pr->cvaddr);
adv:
; /* otherwise "label at end of compound stmt" gcc error */
} while (advance(pr)); } while (advance(pr));
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment