diff --git a/driver-icarus.c b/driver-icarus.c index 4d8ac532..442eb9d1 100644 --- a/driver-icarus.c +++ b/driver-icarus.c @@ -426,11 +426,10 @@ static bool icarus_detect_one(const char *devpath) applog(LOG_INFO, "Found Icarus at %s, mark as %d", devpath, icarus->device_id); - if (icarus_info[icarus->device_id] == NULL) { - icarus_info[icarus->device_id] = (struct ICARUS_INFO *)malloc(sizeof(struct ICARUS_INFO)); - if (unlikely(!(icarus_info[icarus->device_id]))) - quit(1, "Failed to malloc ICARUS_INFO"); - } + // Since we are adding a new device on the end it needs to always be allocated + icarus_info[icarus->device_id] = (struct ICARUS_INFO *)malloc(sizeof(struct ICARUS_INFO)); + if (unlikely(!(icarus_info[icarus->device_id]))) + quit(1, "Failed to malloc ICARUS_INFO"); info = icarus_info[icarus->device_id];