Skip to content

Segmentation fault if sym_reduce_operation() fails #483

@NewSigma

Description

@NewSigma

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

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions