[Commits] [wesnoth/wesnoth] 97952b: Fixed crash on startup on Windows in paths with sp...

GitHub noreply at github.com
Mon Jan 25 03:46:21 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/wesnoth/wesnoth
  Commit: 97952b0d4820bdbf360d3b1447c63f7dd8070ac6
      https://github.com/wesnoth/wesnoth/commit/97952b0d4820bdbf360d3b1447c63f7dd8070ac6
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-19 (Tue, 19 Jan 2016)

  Changed paths:
    M src/serialization/string_utils.hpp
    M src/wesnoth.cpp

  Log Message:
  -----------
  Fixed crash on startup on Windows in paths with spaces

If OMP_WAIT_POLICY is not set, the game relaunches itself using
_execv() after setting the environment variable. It passes the entire
argv array as argv for the new launch, including argv[0] (program
path). If the program path contains spaces and is not surrounded in
quotes, Windows splits the path on quotes and creates a separate
parameter for each part (e.g.
"I:\Battle for Wesnoth\wesnoth\wesnoth.exe" becomes {"I:\Battle",
"for", "Wesnoth\wesnoth\wesnoth.exe"}). Boost::program_options
interprets the last two as positional parameters (the first one is
skipped, as the game expects the first parameter to store the program
path) and crashes the game because only one positional parameter is
allowed.

Fixed by quoting the path in the argv array.


  Commit: 702be57481b3b3620ed1194accdeef2be8f0f7a8
      https://github.com/wesnoth/wesnoth/commit/702be57481b3b3620ed1194accdeef2be8f0f7a8
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-20 (Wed, 20 Jan 2016)

  Changed paths:
    M src/filesystem_boost.cpp

  Log Message:
  -----------
  Fixed: filesystem::get_exe_dir() returned a wrong directory on Windows

It returned the current directory, not the EXE directory.


  Commit: 6d82f98f658e8a46db6c3b7aa4f7f09ac9c32783
      https://github.com/wesnoth/wesnoth/commit/6d82f98f658e8a46db6c3b7aa4f7f09ac9c32783
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-20 (Wed, 20 Jan 2016)

  Changed paths:
    M src/wesnoth.cpp

  Log Message:
  -----------
  Try to find game data from the working directory too


  Commit: 8d2ae80b32a2c1b467f5b35c4cec0c7d1e27e234
      https://github.com/wesnoth/wesnoth/commit/8d2ae80b32a2c1b467f5b35c4cec0c7d1e27e234
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-20 (Wed, 20 Jan 2016)

  Changed paths:
    M src/wesnoth.cpp

  Log Message:
  -----------
  Rewrote the code that restarts the process

Unicode command-line parameters now work on Windows.


  Commit: 60f1d98c8da992c332de617b43a6f56873b8e3c9
      https://github.com/wesnoth/wesnoth/commit/60f1d98c8da992c332de617b43a6f56873b8e3c9
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-20 (Wed, 20 Jan 2016)

  Changed paths:
    M src/wesnoth.cpp

  Log Message:
  -----------
  Stop giving ourselves Above Normal priority on Windows

Shikadilord requested this change.


  Commit: 2cc919fa1c20765559be075a08a361eb12ace736
      https://github.com/wesnoth/wesnoth/commit/2cc919fa1c20765559be075a08a361eb12ace736
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-23 (Sat, 23 Jan 2016)

  Changed paths:
    M src/wesnoth.cpp

  Log Message:
  -----------
  Fixed build with MinGW toolchain

As shikadilord pointed out, the std::exception constructors from
strings are a Microsoft extension. I replaced std::exception with
std::runtime_error that has standard contructors from strings.
Constructor from const char* was introduced in C++11, but if the C++
standard library implementation doesn't support that constructor, the
string should be implicitly converted to std::string. Constructor from
std::string has always been there.


  Commit: 4c81e281804885e312348fcd98dfc1fcfc96116b
      https://github.com/wesnoth/wesnoth/commit/4c81e281804885e312348fcd98dfc1fcfc96116b
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-23 (Sat, 23 Jan 2016)

  Changed paths:
    M src/wesnoth.cpp

  Log Message:
  -----------
  Fixed a compiler warning with MinGW toolchain

With -Wall set, MinGW warns about unused functions, and the
restart_process function was unused if the game was compiled using
something other than Visual Studio. The function is no longer compiled
in with non-Microsoft toolchains.


  Commit: 12947486b8ec30cbb2468be63f819388d8cc964c
      https://github.com/wesnoth/wesnoth/commit/12947486b8ec30cbb2468be63f819388d8cc964c
  Author: Jyrki Vesterinen <sandgtx at gmail.com>
  Date:   2016-01-23 (Sat, 23 Jan 2016)

  Changed paths:
    M data/core/about.cfg

  Log Message:
  -----------
  Added myself to credits


  Commit: a34d03627962a417d9afa74ac86c197ad8555b27
      https://github.com/wesnoth/wesnoth/commit/a34d03627962a417d9afa74ac86c197ad8555b27
  Author: Ignacio R. Morelle <shadowm at wesnoth.org>
  Date:   2016-01-25 (Mon, 25 Jan 2016)

  Changed paths:
    M data/core/about.cfg
    M src/filesystem_boost.cpp
    M src/serialization/string_utils.hpp
    M src/wesnoth.cpp

  Log Message:
  -----------
  Merge pull request #571 from jyrkive/fix-crash-on-openmp-relaunch

Fix some startup crashes


Compare: https://github.com/wesnoth/wesnoth/compare/597ca071c415...a34d03627962


More information about the Commits mailing list