ref: da2767a3f9bf4abb0436157972366202ad53a407
parent: e336513be755159158c5ba017c91b018ad4cd36c
author: Ben Harris <bjh21@bjh21.me.uk>
date: Mon Feb 13 16:00:11 EST 2023
Mosaic: don't duplicate the description being validated Mosaic's validate_desc() doesn't write to the description string, so it has no need to make a copy of it. And if it doesn't copy it, it can't leak the copy.
--- a/mosaic.c
+++ b/mosaic.c
@@ -832,21 +832,18 @@
const char *desc)
{
int size_dest = params->height * params->width;
- char *curr_desc = dupstr(desc);
- char *desc_base = curr_desc;
int length;
length = 0;
- while (*curr_desc != '\0') {
- if (*curr_desc >= 'a' && *curr_desc <= 'z') {
- length += *curr_desc - 'a';
- } else if (*curr_desc < '0' || *curr_desc > '9')
+ while (*desc != '\0') {
+ if (*desc >= 'a' && *desc <= 'z') {
+ length += *desc - 'a';
+ } else if (*desc < '0' || *desc > '9')
return "Invalid character in game description";
length++;
- curr_desc++;
+ desc++;
}
- sfree(desc_base);
if (length != size_dest) {
return "Desc size mismatch";
}