From: Joerg Roedel <jroedel@suse.de>
To: "Bjørn Mork" <bjorn@mork.no>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>, linux-pm@vger.kernel.org
Subject: Re: NULL pointer dereference in swsusp_free with 3.17-rc5
Date: Thu, 25 Sep 2014 11:13:18 +0200 [thread overview]
Message-ID: <20140925091318.GA4269@suse.de> (raw)
In-Reply-To: <87egv0i2sl.fsf@nemi.mork.no>
On Thu, Sep 25, 2014 at 09:20:58AM +0200, Bjørn Mork wrote:
> "Rafael J. Wysocki" <rjw@rjwysocki.net> writes:
>
> > I've decided to go with a revert for 3.17, as we don't seem to have an immediate
> > fix and the final 3.17 may be as close as this Sunday. So I'm going to send my
> > final pull request for 3.17 to Linus tomorrow or early on Friday.
>
> Sounds safest to me, FWIW.
Yes, sorry for the delay, I am still fighting with my cold and couldn't
get around to send a fix sooner :/
> For the next round of this, I think the only missing part was some test
> like
>
> if (!forbidden_pages_map || !free_pages_map)
> goto return_without_freeing_anything;
Right, this is pretty much the fix. Can you please test the attached
patch?
> And BTW, I believe it would be useful if at least one more person in the
> world tested hibernation between each release ;-)
Well, I tested these patches on at least 4 or 5 different hardware
configurations. I also know of other people testing hibernation with -rc
kernels, but this is the first report of this issue I have seen. I
wonder what it different in your setup so that you trigger this bug.
Anyway, it would be great if you could test the patch below :)
Thanks,
Joerg
From fe599eff60cfbfbb1f894dc476ee28f38aef954b Mon Sep 17 00:00:00 2001
From: Joerg Roedel <jroedel@suse.de>
Date: Thu, 25 Sep 2014 11:04:40 +0200
Subject: [PATCH] PM: Hibernate: Fix NULL pointer access in swsusp_free
The optimized version of swsusp_free does not check the
bitmap pointers anymore, which may cause a NULL pointer
dereference and a kernel crash. Fix it by adding the checks
and bail out if one of them is NULL.
Reported-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
kernel/power/snapshot.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index c4b8093..791a618 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -1343,6 +1343,9 @@ void swsusp_free(void)
{
unsigned long fb_pfn, fr_pfn;
+ if (!forbidden_pages_map || !free_pages_map)
+ goto out;
+
memory_bm_position_reset(forbidden_pages_map);
memory_bm_position_reset(free_pages_map);
@@ -1370,6 +1373,7 @@ loop:
goto loop;
}
+out:
nr_copy_pages = 0;
nr_meta_pages = 0;
restore_pblist = NULL;
--
1.8.4.5
next prev parent reply other threads:[~2014-09-25 9:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 14:50 NULL pointer dereference in swsusp_free with 3.17-rc5 Bjørn Mork
2014-09-23 15:24 ` Rafael J. Wysocki
2014-09-23 17:27 ` Bjørn Mork
2014-09-23 20:28 ` Rafael J. Wysocki
2014-09-24 9:46 ` Joerg Roedel
2014-09-23 21:20 ` Rafael J. Wysocki
2014-09-24 7:45 ` Bjørn Mork
2014-09-24 9:51 ` Joerg Roedel
2014-09-24 10:17 ` Bjørn Mork
2014-09-24 23:44 ` Rafael J. Wysocki
2014-09-25 7:20 ` Bjørn Mork
2014-09-25 9:13 ` Joerg Roedel [this message]
2014-09-25 10:54 ` Bjørn Mork
2014-09-25 20:26 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140925091318.GA4269@suse.de \
--to=jroedel@suse.de \
--cc=bjorn@mork.no \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).