diff options
| author | 2021-04-30 14:48:32 -0700 | |
|---|---|---|
| committer | 2021-04-30 14:48:32 -0700 | |
| commit | fa3ffff8ded9ca071908701c911142001cc62f73 (patch) | |
| tree | 1db00dd99592d3cfb3807606b1d3edbf72a4e1ff /src/core | |
| parent | Merge pull request #6243 from german77/GCresetOrigin (diff) | |
| parent | applets/web: Fix a use-after-free when passing in the URL string (diff) | |
| download | yuzu-fa3ffff8ded9ca071908701c911142001cc62f73.tar.gz yuzu-fa3ffff8ded9ca071908701c911142001cc62f73.tar.xz yuzu-fa3ffff8ded9ca071908701c911142001cc62f73.zip | |
Merge pull request #6257 from Morph1984/fix-use-after-free-webapplet
applets/web: Fix a use-after-free when passing in the URL string
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/frontend/applets/web_browser.cpp | 4 | ||||
| -rw-r--r-- | src/core/frontend/applets/web_browser.h | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/core/frontend/applets/web_browser.cpp b/src/core/frontend/applets/web_browser.cpp index 50db6a654..be4736f47 100644 --- a/src/core/frontend/applets/web_browser.cpp +++ b/src/core/frontend/applets/web_browser.cpp | |||
| @@ -12,7 +12,7 @@ WebBrowserApplet::~WebBrowserApplet() = default; | |||
| 12 | DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default; | 12 | DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default; |
| 13 | 13 | ||
| 14 | void DefaultWebBrowserApplet::OpenLocalWebPage( | 14 | void DefaultWebBrowserApplet::OpenLocalWebPage( |
| 15 | std::string_view local_url, std::function<void()> extract_romfs_callback, | 15 | const std::string& local_url, std::function<void()> extract_romfs_callback, |
| 16 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const { | 16 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const { |
| 17 | LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open local web page at {}", | 17 | LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open local web page at {}", |
| 18 | local_url); | 18 | local_url); |
| @@ -21,7 +21,7 @@ void DefaultWebBrowserApplet::OpenLocalWebPage( | |||
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | void DefaultWebBrowserApplet::OpenExternalWebPage( | 23 | void DefaultWebBrowserApplet::OpenExternalWebPage( |
| 24 | std::string_view external_url, | 24 | const std::string& external_url, |
| 25 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const { | 25 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const { |
| 26 | LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open external web page at {}", | 26 | LOG_WARNING(Service_AM, "(STUBBED) called, backend requested to open external web page at {}", |
| 27 | external_url); | 27 | external_url); |
diff --git a/src/core/frontend/applets/web_browser.h b/src/core/frontend/applets/web_browser.h index 1c5ef19a9..d7bd44c27 100644 --- a/src/core/frontend/applets/web_browser.h +++ b/src/core/frontend/applets/web_browser.h | |||
| @@ -16,11 +16,11 @@ public: | |||
| 16 | virtual ~WebBrowserApplet(); | 16 | virtual ~WebBrowserApplet(); |
| 17 | 17 | ||
| 18 | virtual void OpenLocalWebPage( | 18 | virtual void OpenLocalWebPage( |
| 19 | std::string_view local_url, std::function<void()> extract_romfs_callback, | 19 | const std::string& local_url, std::function<void()> extract_romfs_callback, |
| 20 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0; | 20 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0; |
| 21 | 21 | ||
| 22 | virtual void OpenExternalWebPage( | 22 | virtual void OpenExternalWebPage( |
| 23 | std::string_view external_url, | 23 | const std::string& external_url, |
| 24 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0; | 24 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> callback) const = 0; |
| 25 | }; | 25 | }; |
| 26 | 26 | ||
| @@ -28,11 +28,12 @@ class DefaultWebBrowserApplet final : public WebBrowserApplet { | |||
| 28 | public: | 28 | public: |
| 29 | ~DefaultWebBrowserApplet() override; | 29 | ~DefaultWebBrowserApplet() override; |
| 30 | 30 | ||
| 31 | void OpenLocalWebPage(std::string_view local_url, std::function<void()> extract_romfs_callback, | 31 | void OpenLocalWebPage(const std::string& local_url, |
| 32 | std::function<void()> extract_romfs_callback, | ||
| 32 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> | 33 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> |
| 33 | callback) const override; | 34 | callback) const override; |
| 34 | 35 | ||
| 35 | void OpenExternalWebPage(std::string_view external_url, | 36 | void OpenExternalWebPage(const std::string& external_url, |
| 36 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> | 37 | std::function<void(Service::AM::Applets::WebExitReason, std::string)> |
| 37 | callback) const override; | 38 | callback) const override; |
| 38 | }; | 39 | }; |