diff --git a/src/gp2y0a/gp2y0a.c b/src/gp2y0a/gp2y0a.c index f1bd7152..cdca66ed 100644 --- a/src/gp2y0a/gp2y0a.c +++ b/src/gp2y0a/gp2y0a.c @@ -30,6 +30,7 @@ gp2y0a_context gp2y0a_init(uint8_t pin, float a_ref){ dev->pin = pin; dev->aio = mraa_aio_init(dev->pin); if(dev->aio == NULL){ + free(dev); return NULL; } dev->a_res = (1 << mraa_aio_get_bit(dev->aio)); diff --git a/src/mpr121/mpr121.c b/src/mpr121/mpr121.c index c63fb8df..1e0e6a77 100644 --- a/src/mpr121/mpr121.c +++ b/src/mpr121/mpr121.c @@ -41,8 +41,8 @@ mpr121_context mpr121_init(int bus, uint8_t address){ } if (mraa_i2c_address(dev->i2c, dev->address) != MRAA_SUCCESS){ - free(dev); printf("error using i2c address: %x\n", dev->address); + free(dev); return NULL; }