From 22d4de27f1cba92a1881e6531e8875b7249555b9 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Fri, 22 Mar 2019 14:49:07 -0700 Subject: [PATCH] fs.mitm: fix null deref --- .../ams_mitm/source/fs_mitm/fs_path_utils.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/stratosphere/ams_mitm/source/fs_mitm/fs_path_utils.cpp b/stratosphere/ams_mitm/source/fs_mitm/fs_path_utils.cpp index 9dc0c8595..f2002d0d9 100644 --- a/stratosphere/ams_mitm/source/fs_mitm/fs_path_utils.cpp +++ b/stratosphere/ams_mitm/source/fs_mitm/fs_path_utils.cpp @@ -185,7 +185,9 @@ Result FsPathUtils::Normalize(char *out, size_t max_out_size, const char *src, s if (!skip_next_sep) { if (len + 1 == max_out_size) { out[len] = 0; - *out_len = len; + if (out_len != nullptr) { + *out_len = len; + } return ResultFsTooLongPath; } @@ -227,7 +229,9 @@ Result FsPathUtils::Normalize(char *out, size_t max_out_size, const char *src, s out[len++] = src[i+j]; } out[len] = 0; - *out_len = len; + if (out_len != nullptr) { + *out_len = len; + } return ResultFsTooLongPath; } } @@ -249,7 +253,9 @@ Result FsPathUtils::Normalize(char *out, size_t max_out_size, const char *src, s /* NULL terminate. */ out[len] = 0; - *out_len = len; + if (out_len != nullptr) { + *out_len = len; + } /* Assert normalized. */ bool normalized = false;