fat: fix memory allocation failure handling of match_strdup()
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Sat, 21 Jul 2018 00:53:42 +0000 (17:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 21 Jul 2018 19:50:46 +0000 (12:50 -0700)
commit35033ab988c396ad7bce3b6d24060c16a9066db8
tree52602d1e8977c4fa765150c99f9af610f7a8fe5e
parent5a6964944cdfe83de849a5f748f51c983f9914ec
fat: fix memory allocation failure handling of match_strdup()

In parse_options(), if match_strdup() failed, parse_options() leaves
opts->iocharset in unexpected state (i.e.  still pointing the freed
string).  And this can be the cause of double free.

To fix, this initialize opts->iocharset always when freeing.

Link: http://lkml.kernel.org/r/8736wp9dzc.fsf@mail.parknet.co.jp
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Reported-by: syzbot+90b8e10515ae88228a92@syzkaller.appspotmail.com
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fat/inode.c