const sframe_header *dhp;
sframe_decoder_ctx *dctx;
char *frame_buf;
- char *tempbuf = NULL;
size_t fidx_size;
uint32_t fre_bytes;
if (foreign_endian)
{
/* Allocate a new buffer and initialize it. */
- tempbuf = (char *) malloc (sf_size * sizeof (char));
+ char *tempbuf = malloc (sf_size * sizeof (char));
if (tempbuf == NULL)
return sframe_ret_set_errno (errp, SFRAME_ERR_NOMEM);
memcpy (tempbuf, sf_buf, sf_size);
if (flip_header (tempbuf, sfp->sfp_version))
{
sframe_ret_set_errno (errp, SFRAME_ERR_BUF_INVAL);
+ free (tempbuf);
goto decode_fail_free;
}
/* Flip the rest of the SFrame section data buffer. */
if (flip_sframe (tempbuf, sf_size, 0))
{
sframe_ret_set_errno (errp, SFRAME_ERR_BUF_INVAL);
+ free (tempbuf);
goto decode_fail_free;
}
return dctx;
decode_fail_free:
- if (foreign_endian && tempbuf != NULL)
- free (tempbuf);
sframe_decoder_free (&dctx);
dctx = NULL;
return dctx;