Segfault when reading 0-based matrix
Tongdongq opened this issue · 0 comments
Tongdongq commented
When reading a 0-based matrix, my copy of clSPARSE segfaults.
I traced the reason to clsparseSCsrMatrixfromFile() -> MMReadFormat() -> MMGenerateCOOFromFile() -> FillCoordData(), where each coordinate reduced by one. When removing this subtraction, the program does not segfault.
The actual segfault occurs in clsparseSCsrMatrixfromFile(), during conversion of COO to CSR. One of the coordinates in the file is 0, and becomes UINT_MAX, this causes the while loop to keep writing untill the end of the iCsrrow_pointer array.
Is this reader only for 1-based matrix files?
I removed the subtraction and it seems fixed now, do you see any other possible bugs?