Crash when platesolving fails
Siril version: master
When compile with:
meson _build -Db_sanitize=address
Siril can crash if platesolving algorithm fails. The logs are attached.
The crash comes from this piece of code in match.c:
int iter = 0;
do {
ret = atFindTrans(numA, star_list_A, numB, star_list_B, triangle_radius,
nobj, min_scale, max_scale, rot_angle, rot_tol, max_iter,
halt_sigma, trans);
if (ret != SH_SUCCESS && iter == 0) {
min_scale = -1.0;
max_scale = -1.0;
fprintf(stdout, "Give another try with scale changes\n");
}
iter++;
} while (iter < 2 && ret != SH_SUCCESS);
Running atFindTrans twice causes the crash. Probably some variables are freed, but I can't reproduce th crash with gdb.
Edited by Cyril Richard