From c3c01806490feaad10b719eb21b2a9ef6496d420 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 15 May 2025 08:15:35 -0400 Subject: [PATCH] correctly check for 32bit integer overflow --- src/ML-POD/compute_podd_atom.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ML-POD/compute_podd_atom.cpp b/src/ML-POD/compute_podd_atom.cpp index 4ab6e23393..c691b6b3f2 100644 --- a/src/ML-POD/compute_podd_atom.cpp +++ b/src/ML-POD/compute_podd_atom.cpp @@ -58,8 +58,8 @@ ComputePODDAtom::ComputePODDAtom(LAMMPS *lmp, int narg, char **arg) : pod = nullptr; elements = nullptr; - if (((((MAXBIGINT*3.0)*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0)) - error->all(FLERR, "Per-atom data too large"); + if ((((3.0*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0)) + error->all(FLERR, "Too many atoms ({}_ for compute {}", atom->natoms, style); size_peratom_cols = 3 * atom->natoms * podptr->Mdesc * podptr->nClusters; peratom_flag = 1; } @@ -110,8 +110,8 @@ void ComputePODDAtom::compute_peratom() if (atom->natoms > nmax) { memory->destroy(pod); nmax = atom->natoms; - if (((((MAXBIGINT*3.0)*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0)) - error->all(FLERR, "Per-atom data too large"); + if ((((3.0*atom->natoms)*podptr->nClusters)*podptr->Mdesc) > (MAXSMALLINT*1.0)) + error->all(FLERR, "Too many atoms ({}) for compute {}", atom->natoms, style); int numdesc = 3 * atom->natoms * podptr->Mdesc * podptr->nClusters; memory->create(pod, nmax, numdesc,"podd/atom:pod"); array_atom = pod;