Skip to content

Commit e7a5caa

Browse files
Rafal GodlewskiMichal Klocek
authored andcommitted
[468][Backport] Security bug 431668129
Manual backport of patch originally reviewed on https://chromium-review.googlesource.com/c/chromium/src/+/6757109: Check for existence of this in `DialogDelegate::RunCloseCallback` Similarly to https://crrev.com/c/6370014 for the repeated callback variant, widget can get destroyed after running OnceClosure. Since in case of OnceClosure `already_started_close_` is just assigned to true, return it directly after running the callback instead of returning possibly destroyed member at the end. Fixed: 431668129 Change-Id: I6848d351fb3776a82568300d148b4b9189f52078 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6757109 Commit-Queue: Rafał Godlewski <[email protected]> Reviewed-by: Keren Zhu <[email protected]> Cr-Commit-Position: refs/heads/main@{#1487815} Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/665069 Reviewed-by: Allan Sandfeld Jensen <[email protected]>
1 parent cbd4cda commit e7a5caa

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

chromium/ui/views/window/dialog_delegate.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,12 +243,14 @@ bool DialogDelegate::RunCloseCallback(
243243
if (absl::holds_alternative<base::OnceClosure>(callback)) {
244244
already_started_close_ = true;
245245
absl::get<base::OnceClosure>(std::move(callback)).Run();
246+
return true;
246247
} else {
247248
already_started_close_ =
248249
absl::get<base::RepeatingCallback<bool()>>(callback).Run();
250+
return already_started_close_;
249251
}
250252

251-
return already_started_close_;
253+
NOTREACHED();
252254
}
253255

254256
View* DialogDelegate::GetInitiallyFocusedView() {

0 commit comments

Comments
 (0)