1
0
Fork 0
Commit graph

3741 commits

Author SHA1 Message Date
krcroft
78cc6be86d Make use of template variable, and reformat whitespace 2019-12-09 08:19:26 +01:00
krcroft
c34670aba0 Replace strncat with safe_strcat where possible 2019-12-09 08:19:26 +01:00
krcroft
c9198b2944 Fix unsafe memory operations and warnings in the fatDrive class
- Move imageDiskList from pointer to vector of unique_ptr
- Replace string operations with size-limited versions
- Initialize members
- Eliminate unecessary casts
- Eliminate memory-leak on pointer assignment
2019-12-09 08:19:26 +01:00
Patryk Obara
f89416a20a Update version in config.h and resource script 2019-12-09 07:22:15 +01:00
krcroft
8c6758c8d1 Memory overrun and C++11 updates
- Limit write length into buffer, and add comment about corner-case
- Use C++11's syntax to explicitly remove private copy and assignment operators
- Use C++11 container loop syntax to shorting a cleanup function
2019-12-07 19:08:47 +01:00
krcroft
cff6b05559 Improve memory safety in the DOS Drive Cache class
- Fix Bitu printf format type
- Check a pointer prior to dereferencing it
- Prevent writing one-beyond the last index
- Replace strcpy with with helper safe_strcpy, provided by @dreamer - thank you!
- Replace strcat with strncat
- Add constructor intializers for scalars and arrays
- Initialize and replace 0-value pointers with nullptr
- Pass in the buffer length when strncpy'ing into a function variable
2019-12-07 19:08:47 +01:00
Patryk Obara
9576db91c1 Use fixed name for a GitHub-generated zip 2019-12-05 23:35:15 +01:00
Patryk Obara
57d61085e2 Replace version with brand for .conf file suffix 2019-12-05 23:35:15 +01:00
krcroft
8f2a153dc2 STB Vorbis: eliminate inaccessible branch
The eliminated code removes the (ch == 1) branch, which is scoped
within this if condition: `if (rtype == 2 && ch != 1)`, therefore
the (ch == 1) branch will never be taken.
2019-12-05 10:35:44 +01:00
krcroft
a7a899fdb0 STB Vorbis: prevent division by zero in decode_resign if ch == 0
In the call to decode_residue:
  decode_residue(f, residue_buffers, ch, n2, r, do_not_decode);

The channel count is previously intialized as zero and incremented
based on a for-loop (f->channels) plus a conditional,
if (map->chan[j].mux == i).  If this doesn't happen then 'ch'
remains zero.

Once inside decode_residue(..), the code has three branches based
on channel count: stereo (ch == 2), mono (ch == 1), and then the
exception if it's neither of those (simple 'else').  It's in here
where a zero-valued 'ch' can be used as the denominator in these
calculations:
    int c_inter = z % ch
    p_inter = z/ch;

Obviously this 'else' branch is meant for channel counts greater
than two an not for zero channels; so this change simply makes
that branch only valid if (ch > 2).
2019-12-05 10:35:44 +01:00
krcroft
bedcc244d9 STB Vorbis: Check before derefercing a potential NULL pointer 2019-12-05 10:35:44 +01:00
Patryk Obara
4add527371 Fix wrong function name in the exception log
Bug report: https://sourceforge.net/p/dosbox/bugs/518/
2019-12-04 06:11:01 +01:00
David Reid
84588c50bd Bump dr_wav to v0.11.2
Fixes:
- https://github.com/mackron/dr_libs/issues/84
- https://github.com/mackron/dr_libs/issues/83
- https://github.com/mackron/dr_libs/issues/82
- https://github.com/mackron/dr_libs/issues/81
- https://github.com/mackron/dr_libs/issues/80
- https://github.com/mackron/dr_libs/issues/79
- https://github.com/mackron/dr_libs/issues/78
- https://github.com/mackron/dr_libs/issues/77
- https://github.com/mackron/dr_libs/issues/76
- https://github.com/mackron/dr_libs/issues/75
2019-12-03 06:35:00 +01:00
David Reid
6b5a5acc9a Bump dr_mp3 to v0.5.4
Fixes:
- https://github.com/mackron/dr_libs/issues/86
- https://github.com/mackron/dr_libs/issues/85
2019-12-03 06:35:00 +01:00
David Reid
1866b4d295 Bump dr_flac to v0.12.3
Fixes:
- https://github.com/mackron/dr_libs/issues/93
- https://github.com/mackron/dr_libs/issues/92
- https://github.com/mackron/dr_libs/issues/91
- https://github.com/mackron/dr_libs/issues/90
- https://github.com/mackron/dr_libs/issues/89
- https://github.com/mackron/dr_libs/issues/88
- https://github.com/mackron/dr_libs/issues/87
2019-12-03 06:35:00 +01:00
krcroft
1f2ff70463 Ensure alloca is not defined before defining 2019-12-03 06:35:00 +01:00
krcroft
01a61a33f8 Remove ineffective consts and indicate unused variables 2019-12-03 06:35:00 +01:00
krcroft
d23f31fbe3 Avoid unecessary float-to-double promotion, and cleanup 2019-12-03 06:35:00 +01:00
krcroft
b55b43f543 Use PRIuPTR and define it for Windows GCC 64-bit 2019-12-03 05:12:28 +01:00
Patryk Obara
7d21bb1408 Move definition out of autoconfig 2019-12-03 05:12:28 +01:00
krcroft
7e3c4d3945 Harmonize refactoring of switch statement 2019-12-03 05:12:28 +01:00
krcroft
8a5a539f9a Cleanup printf types and explicitly state unused vars 2019-12-03 05:12:28 +01:00
krcroft
e5981c3b8e Fix uninitized scalar access 2019-12-03 05:12:28 +01:00
krcroft
d1a1932a07 Fix uninitized pointer accesses 2019-12-03 05:12:28 +01:00
Patryk Obara
f3b8bff3f5 Remove unused private field in device_EMM 2019-11-29 06:27:14 +01:00
Patryk Obara
e95b6e7063 Remove unused private field in fatFile 2019-11-29 06:27:14 +01:00
Patryk Obara
7afc052550 Silence "unused-const-variable" warning
This register dump looks useful, but it was never used for anything…
2019-11-29 06:27:14 +01:00
Patryk Obara
6325c995d6 Fix "unused-variable" warning 2019-11-29 06:27:14 +01:00
Patryk Obara
5ff1fcd604 Fix "misleading-indentation" warnings
GCC helpfully indicates, that:

warning: this ‘if’ clause does not guard (…) this statement, but
the latter is misleadingly indented as if it were guarded by the ‘if’.

Also, improve readability while we're touching these lines.
2019-11-29 06:27:14 +01:00
Patryk Obara
59edc4d9b5 Change the length of version field in infobox
Otherwise, infobox looks broken when version string has more
than 8 characters.
2019-11-29 06:27:14 +01:00
Patryk Obara
e831d0b090 Remove pointless switch causing warnings 2019-11-29 06:27:14 +01:00
Patryk Obara
19b8902db3 Fix a resource leak
This bug was detected via Coverity static analysis:
Variable tempfile going out of scope leaks the storage it points to.

The leak happens when invalid keyboard layout file is being loaded:

  $ touch xx.kl
  $ dosbox .
  C:\>keyb xx
2019-11-28 21:06:20 +01:00
Patryk Obara
301d7c3423 Merge branch 'svn/trunk' r4296 2019-11-26 18:37:09 +01:00
Peter Veenstra
1521b7ad7d Fix bug #519
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4296
2019-11-26 16:52:04 +00:00
Peter Veenstra
f1608a2509 Fix bug #520
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4295
2019-11-26 15:30:53 +00:00
krcroft
eaeb001b17 Play into subsequent track(s) if playback length exceeds the the current track
Issue reported by Dagar and Pr3tty F1y, and confirmed as a bug by ripsaw8080.
Thank you!

This fixes the GoG release of Betrayal at Krondor which (either due to CD mastering
issues or a faulty rip), requests playback of a given track at the tail end
of the prior track.

In debugging and performing this fix, many debug messages were improved as well
as making some small small code adjustments, such as using iterators to point to
individual tracks (track->attribute) instead of using the tracks array
(tracks[track -1].attribute).
2019-11-24 17:34:54 +01:00
Patryk Obara
6c42f3adf8 Fix several unused-private-field warnings 2019-11-24 17:14:32 +01:00
Patryk Obara
ef40533d22 Silence 2 switch warnings 2019-11-24 17:14:32 +01:00
Patryk Obara
618ab5ea08 Remove several unused variables in zmbv 2019-11-24 17:14:32 +01:00
Patryk Obara
bdee95848e Silence a number of switch warnings in zmbv 2019-11-24 17:14:32 +01:00
Patryk Obara
723dfdbe46 Silence static analysis false-positive garbage value
Clang static analyzer returned a false-positive issue in line 671:

The right operand of '<' is a garbage value

Variables needed to be moved up, because otherwise initialization
crosses to the next case.
2019-11-24 17:14:32 +01:00
Patryk Obara
f105697165 Silence a number of switch warnings in vga_xga
In total, 28 warnings are removed by adding these few default cases.
2019-11-24 17:14:32 +01:00
Patryk Obara
64671a888c Avoid passing null to strcat
Static analysis indicated an issue, when line was being passed as 2nd
argument to strcat:

Null pointer passed as an argument to a 'nonnull' parameter

Replace repeated strcat with creating a formatted string and use
the opportunity to do a small format cleanup.
2019-11-24 17:14:32 +01:00
Patryk Obara
b344344821 Properly fix warnings about unused variable
A workaround with no-op assignment fools the compiler and static
analyzer, but the proper fix cleans up this code as well.
2019-11-24 17:14:32 +01:00
Patryk Obara
ef144e4bca Merge branch 'svn/trunk' r4294 2019-11-23 18:41:05 +01:00
Peter Veenstra
f923a8e644 a=a can trigger warnings as well. This should be hopefully do the trick.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4294
2019-11-22 07:28:27 +00:00
Patryk Obara
cdc193170c Merge branch 'svn/trunk' r4293 2019-11-21 20:53:21 +01:00
Peter Veenstra
db51b63554 Remove some old code and do an a=a to trick a compiler in non-debug mode
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4293
2019-11-20 07:17:12 +00:00
Peter Veenstra
8cb2e08f31 Refinements of commit 4291, so that precission can be specified as well and less fixed defines are used
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4292
2019-11-19 16:16:06 +00:00
Peter Veenstra
01fe58047e Try to solve the Bitu formatting warning on all supported platforms (both 32 and 64 bit). Did a few places. Still a lot to go. Changed default display of Bitu to be unsigned instead of signed.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4291
2019-11-18 21:08:57 +00:00