apply corrections to issues reported by static code analysis

This commit is contained in:
Axel Kohlmeyer
2016-10-24 17:12:28 -04:00
parent 477ddaf112
commit 7b89e47a38
4 changed files with 28 additions and 52 deletions

View File

@ -578,34 +578,21 @@ void Region::write_restart(FILE *fp)
int Region::restart(char *buf, int &n)
{
int sizeid = buf[n];
int size = *((int *)(buf+n));
n += sizeof(int);
char *restart_id = new char[sizeid];
for (int i = 0; i < sizeid; i++)
restart_id[i] = buf[n++];
if (strcmp(restart_id,id) != 0) return 0;
if ((size <= 0) || (strcmp(buf+n,id) != 0)) return 0;
n += size;
int sizestyle = buf[n];
size = *((int *)(buf+n));
n += sizeof(int);
char *restart_style = new char[sizestyle];
for (int i = 0; i < sizestyle; i++)
restart_style[i] = buf[n++];
if (strcmp(restart_style,style) != 0) return 0;
if ((size <= 0) || (strcmp(buf+n,style) != 0)) return 0;
n += size;
int restart_nreg = buf[n];
int restart_nreg = *((int *)(buf+n));
n += sizeof(int);
if (restart_nreg != nregion) return 0;
char *rlist = new char[size_restart*sizeof(double)];
for (int i = 0; i < size_restart*sizeof(double); i++)
rlist[i] = buf[n++];
for (int i = 0; i < size_restart; i++){
prev[i] = ((double *)rlist)[i];
}
delete [] rlist;
delete [] restart_id;
delete [] restart_style;
memcpy(prev,buf+n,size_restart*sizeof(double));
return 1;
}