browser(webkit): fix null pointer access (#1099)
This commit is contained in:
		
							parent
							
								
									ba29470cc1
								
							
						
					
					
						commit
						8c57358248
					
				|  | @ -1 +1 @@ | ||||||
| 1154 | 1155 | ||||||
|  |  | ||||||
|  | @ -12092,7 +12092,7 @@ index d996feb64e02d7399f2ed0b34d3d0dd03133f824..4ab1fa69437ed5a11a5357a331cb7e1c | ||||||
|      CommandLineOptions() |      CommandLineOptions() | ||||||
|  #if ENABLE(WEBKIT) |  #if ENABLE(WEBKIT) | ||||||
| diff --git a/Tools/MiniBrowser/win/MainWindow.cpp b/Tools/MiniBrowser/win/MainWindow.cpp
 | diff --git a/Tools/MiniBrowser/win/MainWindow.cpp b/Tools/MiniBrowser/win/MainWindow.cpp
 | ||||||
| index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d505f1161 100644
 | index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..bfe54fa7c027b75c470ad2da4c5f83f2250cbb7e 100644
 | ||||||
| --- a/Tools/MiniBrowser/win/MainWindow.cpp
 | --- a/Tools/MiniBrowser/win/MainWindow.cpp
 | ||||||
| +++ b/Tools/MiniBrowser/win/MainWindow.cpp
 | +++ b/Tools/MiniBrowser/win/MainWindow.cpp
 | ||||||
| @@ -102,7 +102,10 @@ bool MainWindow::isInstance(HWND hwnd)
 | @@ -102,7 +102,10 @@ bool MainWindow::isInstance(HWND hwnd)
 | ||||||
|  | @ -12179,7 +12179,17 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|   |   | ||||||
|      if (m_browserWindow->usesLayeredWebView() || !m_browserWindow->hwnd()) |      if (m_browserWindow->usesLayeredWebView() || !m_browserWindow->hwnd()) | ||||||
|          return; |          return; | ||||||
| @@ -309,17 +321,15 @@ LRESULT CALLBACK MainWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
 | @@ -254,6 +266,9 @@ LRESULT CALLBACK MainWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
 | ||||||
|  |  { | ||||||
|  |      LRESULT result = 0; | ||||||
|  |      RefPtr<MainWindow> thisWindow = reinterpret_cast<MainWindow*>(GetWindowLongPtr(hWnd, GWLP_USERDATA)); | ||||||
|  | +    if (!thisWindow && message != WM_CREATE)
 | ||||||
|  | +        return DefWindowProc(hWnd, message, wParam, lParam);
 | ||||||
|  | +
 | ||||||
|  |      switch (message) { | ||||||
|  |      case WM_ACTIVATE: | ||||||
|  |          switch (LOWORD(wParam)) { | ||||||
|  | @@ -309,17 +324,15 @@ LRESULT CALLBACK MainWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
 | ||||||
|              break; |              break; | ||||||
|  #if ENABLE(WEBKIT) |  #if ENABLE(WEBKIT) | ||||||
|          case IDM_NEW_WEBKIT_WINDOW: { |          case IDM_NEW_WEBKIT_WINDOW: { | ||||||
|  | @ -12199,7 +12209,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|              break; |              break; | ||||||
|          } |          } | ||||||
|  #endif |  #endif | ||||||
| @@ -443,6 +453,9 @@ void MainWindow::setDefaultURLToCurrentURL()
 | @@ -443,6 +456,9 @@ void MainWindow::setDefaultURLToCurrentURL()
 | ||||||
|   |   | ||||||
|  bool MainWindow::toggleMenuItem(UINT menuID) |  bool MainWindow::toggleMenuItem(UINT menuID) | ||||||
|  { |  { | ||||||
|  | @ -12209,7 +12219,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      HMENU menu = ::GetMenu(hwnd()); |      HMENU menu = ::GetMenu(hwnd()); | ||||||
|   |   | ||||||
|      switch (menuID) { |      switch (menuID) { | ||||||
| @@ -519,6 +532,8 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 | @@ -519,6 +535,8 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 | ||||||
|  INT_PTR CALLBACK MainWindow::cachesDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |  INT_PTR CALLBACK MainWindow::cachesDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | ||||||
|  { |  { | ||||||
|      MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(GetWindowLongPtr(hDlg, DWLP_USER)); |      MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(GetWindowLongPtr(hDlg, DWLP_USER)); | ||||||
|  | @ -12218,7 +12228,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      switch (message) { |      switch (message) { | ||||||
|      case WM_INITDIALOG: |      case WM_INITDIALOG: | ||||||
|          SetWindowLongPtr(hDlg, DWLP_USER, lParam); |          SetWindowLongPtr(hDlg, DWLP_USER, lParam); | ||||||
| @@ -549,6 +564,8 @@ INT_PTR CALLBACK MainWindow::cachesDialogProc(HWND hDlg, UINT message, WPARAM wP
 | @@ -549,6 +567,8 @@ INT_PTR CALLBACK MainWindow::cachesDialogProc(HWND hDlg, UINT message, WPARAM wP
 | ||||||
|  INT_PTR CALLBACK MainWindow::customUserAgentDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |  INT_PTR CALLBACK MainWindow::customUserAgentDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | ||||||
|  { |  { | ||||||
|      MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(GetWindowLongPtr(hDlg, DWLP_USER)); |      MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(GetWindowLongPtr(hDlg, DWLP_USER)); | ||||||
|  | @ -12227,7 +12237,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      switch (message) { |      switch (message) { | ||||||
|      case WM_INITDIALOG: { |      case WM_INITDIALOG: { | ||||||
|          MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(lParam); |          MainWindow& thisWindow = *reinterpret_cast<MainWindow*>(lParam); | ||||||
| @@ -594,27 +611,26 @@ void MainWindow::loadURL(std::wstring url)
 | @@ -594,27 +614,26 @@ void MainWindow::loadURL(std::wstring url)
 | ||||||
|          if (SUCCEEDED(::UrlCreateFromPath(url.c_str(), fileURL, &fileURLLength, 0))) |          if (SUCCEEDED(::UrlCreateFromPath(url.c_str(), fileURL, &fileURLLength, 0))) | ||||||
|              url = fileURL; |              url = fileURL; | ||||||
|      } |      } | ||||||
|  | @ -12261,7 +12271,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      wchar_t url[INTERNET_MAX_URL_LENGTH]; |      wchar_t url[INTERNET_MAX_URL_LENGTH]; | ||||||
|      GetWindowText(m_hURLBarWnd, url, INTERNET_MAX_URL_LENGTH); |      GetWindowText(m_hURLBarWnd, url, INTERNET_MAX_URL_LENGTH); | ||||||
|      loadURL(url); |      loadURL(url); | ||||||
| @@ -622,6 +638,8 @@ void MainWindow::onURLBarEnter()
 | @@ -622,6 +641,8 @@ void MainWindow::onURLBarEnter()
 | ||||||
|   |   | ||||||
|  void MainWindow::updateDeviceScaleFactor() |  void MainWindow::updateDeviceScaleFactor() | ||||||
|  { |  { | ||||||
|  | @ -12270,7 +12280,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      if (m_hURLBarFont) |      if (m_hURLBarFont) | ||||||
|          ::DeleteObject(m_hURLBarFont); |          ::DeleteObject(m_hURLBarFont); | ||||||
|   |   | ||||||
| @@ -638,6 +656,8 @@ void MainWindow::updateDeviceScaleFactor()
 | @@ -638,6 +659,8 @@ void MainWindow::updateDeviceScaleFactor()
 | ||||||
|   |   | ||||||
|  void MainWindow::progressChanged(double progress) |  void MainWindow::progressChanged(double progress) | ||||||
|  { |  { | ||||||
|  | @ -12279,7 +12289,7 @@ index 08131e61107bc4163c4fb1e9a65ee5a1ecda6b04..57d3b3662c4f31dba750a340b628744d | ||||||
|      std::wostringstream text; |      std::wostringstream text; | ||||||
|      text << static_cast<int>(progress * 100) << L'%'; |      text << static_cast<int>(progress * 100) << L'%'; | ||||||
|      SetWindowText(m_hProgressIndicator, text.str().c_str()); |      SetWindowText(m_hProgressIndicator, text.str().c_str()); | ||||||
| @@ -645,10 +665,14 @@ void MainWindow::progressChanged(double progress)
 | @@ -645,10 +668,14 @@ void MainWindow::progressChanged(double progress)
 | ||||||
|   |   | ||||||
|  void MainWindow::progressFinished() |  void MainWindow::progressFinished() | ||||||
|  { |  { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue