CQN notification objects are not freed correctly, causing segmentation faults (original) (raw)

The code responsible for freeing CQN message objects contains a typo that causes occasional segfaults, use-after-frees, memory leaks and other related weirdness:

dpiSubscr.cpp, line 279:

for (j = 0; j < query->numTables; j++) {
    if (query->tables[i].numRows > 0)
        dpiUtils__freeMemory(query->tables[i].rows);
}

The code erroneously uses i as a counter for freeing tables, where it should be j.