diff --git a/cstore/py-cdatapack.h b/cstore/py-cdatapack.h --- a/cstore/py-cdatapack.h +++ b/cstore/py-cdatapack.h @@ -257,13 +257,14 @@ self->handle = open_datapack( idx_path, strlen(idx_path), data_path, strlen(data_path)); - free(data_path); free(idx_path); if (self->handle == NULL) { PyErr_NoMemory(); + free(data_path); return -1; } else if (self->handle->status == DATAPACK_HANDLE_OK) { + free(data_path); return 0; } @@ -271,9 +272,12 @@ PyErr_Format(PyExc_RuntimeError, "Unsupported version"); } else if (self->handle->status != DATAPACK_HANDLE_OK) { PyErr_Format(PyExc_ValueError, - "Error setting up datapack (status=%d)", self->handle->status); + "Error setting up datapack %s (status=%d)", + data_path, + self->handle->status); } + free(data_path); free(self->handle); self->handle = NULL; return -1;