VS2019 IntelliSense reported:
Warning C6308: 'realloc' might return null pointer: assigning null
pointer to 'port->write_buf', which is passed as an
argument to 'realloc', will cause the original memory
block to be leaked.
This is correct, we would leak the buffer on a realloc failure.
Put the realloc result in a separate variable and handle the error
path before assigning the result to port->write_buf.
DEBUG_FMT("Setting configuration for port %s", port->name);
#ifdef _WIN32
+ BYTE* new_buf;
TRY(await_write_completion(port));
/* Allocate write buffer for 50ms of data at baud rate. */
port->write_buf_size = max(config->baudrate / (8 * 20), 1);
- port->write_buf = realloc(port->write_buf,
- port->write_buf_size);
-
- if (!port->write_buf)
+ new_buf = realloc(port->write_buf, port->write_buf_size);
+ if (!new_buf)
RETURN_ERROR(SP_ERR_MEM, "Allocating write buffer failed");
+ port->write_buf = new_buf;
}
if (config->bits >= 0)