From e81ae21dbd3a37db1ae8631b34301647ec8210df Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer <akohlmey@gmail.com> Date: Tue, 1 Nov 2016 14:54:16 -0400 Subject: [PATCH] do not access uninitialized data for ewald/disp and pppm/disp --- src/KSPACE/ewald_disp.cpp | 7 +++++-- src/KSPACE/pppm_disp.cpp | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/KSPACE/ewald_disp.cpp b/src/KSPACE/ewald_disp.cpp index 49b7cde12e..b9af258ab6 100644 --- a/src/KSPACE/ewald_disp.cpp +++ b/src/KSPACE/ewald_disp.cpp @@ -489,8 +489,9 @@ void EwaldDisp::init_coeffs() double **b = (double **) force->pair->extract("B",tmp); delete [] B; B = new double[n+1]; + B[0] = 0.0; bytes += (n+1)*sizeof(double); - for (int i=0; i<=n; ++i) B[i] = sqrt(fabs(b[i][i])); + for (int i=1; i<=n; ++i) B[i] = sqrt(fabs(b[i][i])); } if (function[2]) { // arithmetic 1/r^6 double **epsilon = (double **) force->pair->extract("epsilon",tmp); @@ -502,7 +503,9 @@ void EwaldDisp::init_coeffs() if (!(epsilon&&sigma)) error->all( FLERR,"Epsilon or sigma reference not set by pair style in ewald/n"); - for (int i=0; i<=n; ++i) { + for (int j=0; j<7; ++j) + *(bi++) = 0.0; + for (int i=1; i<=n; ++i) { eps_i = sqrt(epsilon[i][i]); sigma_i = sigma[i][i]; sigma_n = 1.0; diff --git a/src/KSPACE/pppm_disp.cpp b/src/KSPACE/pppm_disp.cpp index b7ec188150..6bdf8a2d07 100644 --- a/src/KSPACE/pppm_disp.cpp +++ b/src/KSPACE/pppm_disp.cpp @@ -1357,7 +1357,8 @@ void PPPMDisp::init_coeffs() // local pair coeffs if (function[1]) { // geometric 1/r^6 double **b = (double **) force->pair->extract("B",tmp); B = new double[n+1]; - for (int i=0; i<=n; ++i) B[i] = sqrt(fabs(b[i][i])); + B[0] = 0.0; + for (int i=1; i<=n; ++i) B[i] = sqrt(fabs(b[i][i])); } if (function[2]) { // arithmetic 1/r^6 //cannot use epsilon, because this has not been set yet -- GitLab