diff options
author | Alexandra Tolstikova <alexandra.tolstikova@desy.de> | 2015-10-30 13:39:53 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2017-02-01 16:04:31 +0100 |
commit | 91ba89c68c263daaa7bd903cdf33de0b11c1642b (patch) | |
tree | 1998c9de96f663fca5bdcbeb3fc3e0e7eab957e1 /libcrystfel/src/asdf.c | |
parent | d03c456a838bdebf30e8b508885f0f0907618c00 (diff) |
Fix malloc fail due to integer overflow in N_triplets
Diffstat (limited to 'libcrystfel/src/asdf.c')
-rw-r--r-- | libcrystfel/src/asdf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libcrystfel/src/asdf.c b/libcrystfel/src/asdf.c index 94d993cf..bf2ce342 100644 --- a/libcrystfel/src/asdf.c +++ b/libcrystfel/src/asdf.c @@ -915,10 +915,13 @@ static int **generate_triplets(int N_reflections, int N_triplets_max, int *N) int N_triplets = N_reflections * (N_reflections - 1) * (N_reflections - 2) / 6; - if ( N_triplets > N_triplets_max ) N_triplets = N_triplets_max; + if ( N_triplets > N_triplets_max || N_reflections > 1000 ) { + N_triplets = N_triplets_max; + } *N = N_triplets; int **triplets = malloc(N_triplets * sizeof(int *)); + if (triplets == NULL) { ERROR("Failed to allocate triplets in generate_triplets!\n"); return 0; |