1. 14 Nov, 2021 2 commits
  2. 13 Nov, 2021 2 commits
    • fluzz's avatar
      Heap overflow in loading untrusted save game · 17711a42
      fluzz authored
      Fixed length buffers are used to decode the maps and the waypoints
      when loading a savegame. Corrupted savegames could then be used to
      create an heap overflow and execute malicious code.
      This path fixes 2 reported issues :
      1/ The length of the map's line currently extracted from the savegame
      is computed, and used to allocated a storage buffer. The same is done
      for decoding a waypoint.
      The length of the savegame's line currently read is also checked and if
      it is too long, the game is aborted.
      This fixes issue951.
      2/ When decoding a map, the expected line length is computed (based on
      the map xlen and the number of layers) and if the line read from the
      savegame does not have that expected length, the game is aborted.
      This fixes issue952.
    • fluzz's avatar
      No need to warn if a config parameter is missing in fdrpg.cfg · 918b264c
      fluzz authored
      If a parameter is missing, its default value is used, so it is useless
      to warn the user.
      This patch extends the gen_savestruct.py script, so that some structures
      can be read without warnings (see the 'no_warn_for_structs' new array).
      The 'configuration_for_freedroid' structure is one of those (the only
      one actually).
      Fixes issue976
  3. 05 Nov, 2021 2 commits
    • fluzz's avatar
      The 'enter' key on the keypad is not active. · 2b4feaf0
      fluzz authored
      This patch makes the 'enter' key on the keypad to act as the 'return'
      key on the main keyboard.
      Based on a Debian's patch proposed by Bart Martens.
      This closes issue963
    • fluzz's avatar
      Fix display of accented characters on MacOSX · ee60be92
      fluzz authored
      Since MacOSX 10.14 (Mojave), the system locale can no more been retrieved
      with a call to setlocale(LC_MESSAGES, ""), when run by double-clicking on the
      App's icon.
      It however works as expected when run from the command line...
      If the setlocale() call does not succeed, the system language is now
      requested using the CoreFoundation API.
      This fixes issue954.
  4. 02 Oct, 2021 2 commits
  5. 04 Sep, 2021 3 commits
  6. 13 May, 2020 2 commits
  7. 28 Feb, 2020 1 commit
    • fluzz's avatar
      Remove the need to specifically use gawk (instead of other flavors of · 48311506
      fluzz authored
      An awk script in the po/update-potfiles script uses gawk specific features
      (two dimensional arrays, match() and asort() functions).
      In order to avoid the need of a specific version of awk, this patch replaces
      the awk script by a more conservative bash script.
      This closes issue868
  8. 26 Feb, 2020 1 commit
    • fluzz's avatar
      Fix a bug on droid animations, in SDL mode, with precaching enabled. · 008d0bcf
      fluzz authored
      Currently the animation images are preloaded when a droid spec is parsed from
      The droid specs are stored in a dynarray. So, when the dynarray is reallocated,
      the pointers associated to the images become invalid, and animations are
      This patch moves the preload of enemy graphics at a later stage, once
      the entire set of droid specs is loaded.
      This closes issue964.
  9. 06 Nov, 2019 3 commits
  10. 08 Oct, 2019 1 commit
    • fluzz's avatar
      Rework commit dade2a74, which was reverted by 0aa3161c. · 692a9db5
      fluzz authored
      The reworked commit was about "preventing a crash, possibly, due to FP
      arithmetic accuracy problems..."
      Here is the comment added in view.c:resolve_virtual_position():
      We need to ensure that the computed position is inside the boundaries of
      the 'real' level. Due to a lack of precision during floating point computations
      (i.e. if x<<<y, then (y+x) => (y)), we could possibly get a wrong output.
      For instance, if vpos.x = -0.000002, we expect the computed position to be
      rpos.x = 89.999998 on the left level (given a level's width of 90).
      But, using floats, 90.0-0.000002 gives 90.0, which is not "inside" the level,
      and thus this function returns false.
      The same issue applies to small positive quantities.
      As a fix, a "too small" value is replaced by EPSILON_FIX, which is high enough
      to be representable in the range of float values that we use for the positions.
      Note that this limits the position's precision, around level's boundary, to 1/1000,
      which seems to be small enough.
      Closes issue917
  11. 06 Oct, 2019 1 commit
  12. 05 Oct, 2019 5 commits
  13. 12 Jun, 2019 1 commit
  14. 11 Jun, 2019 3 commits
  15. 07 Jun, 2019 1 commit
  16. 06 Jun, 2019 1 commit
    • Arthur Huillet's avatar
      savegame: fix game loading on non-glibc platforms · 875d8fe3
      Arthur Huillet authored
      savegame loading uses %ms scanf format to match a string and allocate it, but this is only available on some platforms.
      The "m" modifier is apparently in POSIX, but it's not available in Haiku, and scanf there will not do anything for %ms.
      Fix the bug by manually allocating memory and reading into it.
  17. 12 May, 2019 2 commits
  18. 10 May, 2019 1 commit
  19. 08 May, 2019 4 commits
    • fluzz's avatar
    • fluzz's avatar
      Push the scripts used to package a MacOSX dmg. · 939a1450
      fluzz authored
      Those scripts were previously on the buildbot workers, but not
      in the git repo, mainly because they split the packaging in 2 steps,
      the first on a MacMini with a slow internet connection and the
      second on a Linux VM running at OSUOSL.
      Ideally, the packaging should be done in one single step on a Mac,
      with a fast internet connection.
    • fluzz's avatar
      Update translations. · aa570d85
      fluzz authored
          fr: 578 translated messages.
          de: 571 translated messages, 7 untranslated messages.
          pt_BR: 578 translated messages.
          sv: 569 translated messages, 9 untranslated messages.
          cs: 570 translated messages, 8 untranslated messages.
          es: 488 translated messages, 90 untranslated messages.
          it: 555 translated messages, 23 untranslated messages.
          ru: 547 translated messages, 31 untranslated messages.
          hu: 541 translated messages, 37 untranslated messages.
          fr: 6150 translated messages.
          de: 5634 translated messages, 516 untranslated messages.
          pt_BR: 6150 translated messages.
          sv: 5178 translated messages, 972 untranslated messages.
          cs: 5727 translated messages, 423 untranslated messages.
          es: 3751 translated messages, 2399 untranslated messages.
          it: 4852 translated messages, 1298 untranslated messages.
          ru: 4901 translated messages, 1249 untranslated messages.
          hu: 4263 translated messages, 1887 untranslated messages.
          fr: 987 translated messages.
          de: 982 translated messages, 5 untranslated messages.
          pt_BR: 987 translated messages.
          sv: 987 translated messages.
          cs: 914 translated messages, 73 untranslated messages.
          es: 645 translated messages, 342 untranslated messages.
          it: 842 translated messages, 145 untranslated messages.
          ru: 981 translated messages, 6 untranslated messages.
          hu: 900 translated messages, 87 untranslated messages.
    • alex's avatar
      Typo in Chandra dialog. · 7a287197
      alex authored and fluzz's avatar fluzz committed
      Chandra.lua, line 454:
      The *causalties* here were much smaller than everywhere else.
      A previous typo fix changed it from "causalities". At least that was word :)
      Should say: casualties.
      Close issue928
  20. 06 May, 2019 2 commits