1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

bidi_test: minor memory fixes.

Spotted by Coverity: if you _just_ gave a filename to bidi_test,
without any previous argument that set testfn to something other than
NULL, the program would crash rather than giving an error message.

(It's only a test program, but test programs you only run once in a
blue moon are the ones that _most_ need to explain their command-line
syntax to you carefully, because you've forgotten it since last time
you used them!)

Also, conditionalised a memcpy on the size not being 0, because it's
illegal to pass a null pointer to memcpy _even_ if size==0. (That
would only happen with a test case containing a zero-length string,
but whatever.)
This commit is contained in:
Simon Tatham 2022-01-29 18:11:06 +00:00
parent 6344e40e3f
commit 6d77541080

View File

@ -44,6 +44,7 @@ static void run_test(const char *filename, unsigned lineno,
{
size_t bcs_orig_len = bcs_len;
bidi_char *bcs_orig = snewn(bcs_orig_len, bidi_char);
if (bcs_orig_len)
memcpy(bcs_orig, bcs, bcs_orig_len * sizeof(bidi_char));
bcs_len = do_bidi_test(ctx, bcs, bcs_len, override);
@ -335,6 +336,12 @@ int main(int argc, char **argv)
} else {
const char *filename = arg;
if (!testfn) {
fprintf(stderr, "no mode argument provided before filename "
"'%s'\n", filename);
return 1;
}
if (!strcmp(filename, "-")) {
testfn("<standard input>", stdin);
} else {