Commit Graph

907 Commits

Author SHA1 Message Date
JL2210 7f9bd12f76 Add error checking and fix memory leak in gfx/gb.c
It's possible that tile could be leaked, so free it.

Fix sizeof convention and check the result of malloc.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-13 22:02:24 -04:00
ISSOtm 5fe3a0adb6 Remove non-OPT options from Options struct 2020-04-13 17:15:00 +02:00
Eldred Habert cdb4c5f553 Merge pull request #509 from JL2210/zero-alloc-use-fix-3
Fix use of zero-allocated memory
2020-04-13 02:50:58 +02:00
ISSOtm 57639f3765 Change comment style and use errx instead of err 2020-04-13 02:50:11 +02:00
Eldred Habert 9bec983923 Merge pull request #511 from JL2210/memory-errors
Fix memory errors in makepng
2020-04-13 02:39:17 +02:00
ISSOtm 2220f19fa7 Fix use-after-free with include in linker scripts
Fixes #510, and further proves that you *really* should not entrust memory
ownership management to humans :P
2020-04-13 02:36:19 +02:00
JL2210 2a734ecba2 Fix memory errors
This includes not checking the result of malloc and
using the wrong type in sizeof. Only the latter was
caught by scan-build.

Also use more idiomatic sizeof().

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-12 19:45:37 -04:00
JL2210 d21015e34a Fix use of zero-allocated memory
It's possible that the unsigned integer may overflow to zero,
and then we might use zero-allocated memory.

This is incredibly unlikely, and I would even go so far as to say
that this is a false positive. Fix it anyway, to silence this warning:

src/link/patch.c:92:24: warning: Use of zero-allocated memory
        stack.buf[stack.size] = value;
        ~~~~~~~~~~~~~~~~~~~~~ ^

Deal with overflow, and check for zero to get rid of the warning.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-12 19:36:47 -04:00
ISSOtm 023a3c037f Properly handle missing symbols
Fixes #512
2020-04-12 22:52:32 +02:00
ISSOtm a034ce0478 Deprecate '*' for comments 2020-04-09 17:57:15 +02:00
Eldred Habert d6cd5823e3 Merge pull request #508 from JL2210/mod-by-zero-fix-2
Fix modulo by zero
2020-04-09 14:52:12 +02:00
JL2210 5dd941b311 Fix modulo by zero
Yet another case caught by scan-build:

src/link/patch.c:188:21: warning: Division by zero
                        value = popRPN() % value;
                                ~~~~~~~~~^~~~~~~

Just copy over the code from the division case, with a few modifications.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-09 08:50:23 -04:00
ISSOtm f9f27d6f5a Clean up symbol system
Get rid of Hungarian notation
Improve encapsulation (the rest of the world should not touch PC directly)
2020-04-09 10:42:37 +02:00
JL2210 5863cd10b8 Fix possible null pointer dereference
It's possible that if the FILE passed to yy_create_buffer is at the
end-of file, there may be a null pointer dereference.

This should hopefully fix that.

Found with clang-tools' scan-build:

src/asm/lexer.c:281:25: warning: Array access (via field 'pBuffer')
 results in a null pointer dereference
        pBuffer->pBuffer[size] = 0;
                 ~~~~~~~       ^
1 warning generated.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-08 17:30:43 -04:00
ISSOtm 40f8e33e6c Fix periods not being accepted as second char of label names 2020-04-08 15:14:07 +02:00
ISSOtm 0157ba63d3 Document whitespace before local labels 2020-04-08 15:08:29 +02:00
ISSOtm 9e3d8b22cb Document new intra-section align
Also sneak in two code style fixes forgotten in last commit
2020-04-08 15:01:36 +02:00
ISSOtm 665412c073 Implement mid-section alignment directive
Fixes #254.
2020-04-08 12:29:00 +02:00
ISSOtm 2b0c34ecb5 Fix a few code style errors 2020-04-08 00:44:41 +02:00
ISSOtm b0ec8468e6 Allow specifying offset in addition to alignment 2020-04-08 00:40:41 +02:00
ISSOtm e82ad21704 Use a single byte for alignment 2020-04-07 21:19:09 +02:00
ISSOtm e098bf47ba Allow references to be overridden by constant symbols
RGBLINK is capable of handling it now.
Though it'd be ideal for RGBASM to directly catch it.

Fixes #496.
2020-04-07 20:57:20 +02:00
ISSOtm 190678107b Prevent RGBLINK from crashing when getting the bank of a constant 2020-04-07 20:41:29 +02:00
ISSOtm 9f82fa4cf7 Fix BANK(@) outside sections causing crashes 2020-04-07 15:51:17 +02:00
Eldred Habert 562835308b Merge pull request #504 from runlevel5/gcc10-fix
Fix multiple definitions for GCC10
2020-04-07 15:18:23 +02:00
ISSOtm 927c65e863 Fix incorrect PC in LOAD blocks at link time 2020-04-07 14:44:51 +02:00
ISSOtm 5b6c1569a4 Make failure to open file a fatal error 2020-04-07 11:36:44 +02:00
Trung Lê 65121e6d5d Fix multiple definitions for GCC10 2020-04-07 14:48:30 +10:00
ISSOtm 82e0e4ffaf Make some RGBLINK errors non-fatal 2020-04-06 00:48:10 +02:00
ISSOtm bdad1499fe Merge branch 'release' 2020-04-03 11:58:53 +02:00
Eldred Habert 1f5ca39559 Merge pull request #494 from ISSOtm/docs
Overhaul man pages
2020-04-03 11:56:41 +02:00
ISSOtm bcfeb49d6b Allow labels to be passed to DEF 2020-04-02 16:54:41 +02:00
ISSOtm 702d9e0542 Fix wrong error function used in RGBGFX 2020-03-31 17:28:31 +02:00
ISSOtm a3d8836671 Prevent assertions outside sections from crashing 2020-03-29 12:18:24 +02:00
ISSOtm db1eb8fbcb Revert "Prevent RGBASM from outputting corrupted files"
This reverts commit 06fe27c516.

According to Microsoft's documentation
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/tmpfile?view=vs-2019
`tmpfile` attempts to create the temporary file at the **root** folder
This seems to assume that the user has admin rights; might be a compat
thing, idk, but it breaks on people's computers.
(CI didn't catch it, annoyingly.)

Reverting to make RGBASM usable on most Windows computers.
(Sanely-configured ones, at least.)
Another solution to #446 needs to be figured out, yay...
2020-03-27 23:36:11 +01:00
ISSOtm 95f347dc6a Evaluate assertions after placing sections 2020-03-27 20:00:29 +01:00
ISSOtm 6579120d9e Simplify symbol-writing logic 2020-03-27 12:32:14 +01:00
ISSOtm 84cd9f2db9 Fix segfaults when using PC outside a section 2020-03-27 12:30:09 +01:00
ISSOtm 06fe27c516 Prevent RGBASM from outputting corrupted files
Properly fixes #451
2020-03-27 11:19:02 +01:00
ISSOtm 5039af6af1 Document new "unionized section" feature 2020-03-26 23:50:30 +01:00
ISSOtm 4df74d44ec Improve opcode reference 2020-03-26 23:11:01 +01:00
ISSOtm 9113647d41 Fix incorrect macro used for x-ref 2020-03-26 23:11:01 +01:00
ISSOtm 3c304f3acf Override mandoc styling without modifying the stylesheet 2020-03-26 23:11:01 +01:00
ISSOtm 713eef9ef2 Update mandoc style sheet 2020-03-26 23:11:01 +01:00
ISSOtm 7635a2fc74 Reword and give an example of symbol interpolation 2020-03-26 23:11:01 +01:00
ISSOtm 6889334521 Add viewport tag for mobile users 2020-03-26 23:11:01 +01:00
ISSOtm d1e82e50cb Improve style of man page HTML renders
See individual comments within `rgbds.css` for more info
Not too fond of having to modify `mandoc.css`, but I did my best to
modify as little as possible
2020-03-26 23:11:01 +01:00
ISSOtm 7955447ca4 Overhaul man pages 2020-03-26 23:11:01 +01:00
ISSOtm 51e225cd75 Add post-processor for HTML renders
Adds links to argument descriptions in synopsis
Adds links to man pages in the set (not to external ones)
Removes artifact from the way long opts are encoded
Makes description blurb inline, consistently with terminal output
2020-03-26 23:11:01 +01:00
ISSOtm 187f88aa50 Only copy necessary characters for bare labels 2020-03-26 23:10:51 +01:00