-
Notifications
You must be signed in to change notification settings - Fork 116
Closed
Description
In rare cases, sym_reduce_operation() may fail and return a null pointer. If this occurs, search_hall_number() will dereference the null pointer and a segmentation fault is triggered.
Lines 800 to 806 in e6bdd0b
sym_reduced = sym_reduce_operation(primitive->cell, symmetry, tolerance, | |
angle_tolerance); | |
hall_number = | |
search_hall_number(origin_shift, conv_lattice, candidates, | |
num_candidates, primitive, sym_reduced, symprec); | |
sym_free_symmetry(sym_reduced); | |
sym_reduced = NULL; |
I propose the following code as a suggestion for improvement:
sym_reduced = sym_reduce_operation(primitive->cell, symmetry, tolerance, angle_tolerance);
if (sym_reduced) { // Avoid dereference null pointer
hall_number = search_hall_number(origin_shift, conv_lattice, candidates,
num_candidates, primitive, sym_reduced, symprec);
sym_free_symmetry(sym_reduced);
sym_reduced = NULL;
}
Please let me know if I was wrong. Thank you.