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.
|
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.
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.
spglib/src/spacegroup.c
Lines 800 to 806 in e6bdd0b
I propose the following code as a suggestion for improvement:
Please let me know if I was wrong. Thank you.