harden code against buffer overflows

This commit is contained in:
Axel Kohlmeyer
2018-10-19 16:48:37 -04:00
parent d9dd80b368
commit 709013be5a

View File

@ -604,14 +604,15 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
if (restart2data || restart2dump) { if (restart2data || restart2dump) {
char cmd[256]; char cmd[256];
snprintf(cmd,256,"read_restart %s\n",restartfile); snprintf(cmd,248,"read_restart %s\n",restartfile);
if (restartremap) strcat(cmd," remap\n"); if (restartremap) strcat(cmd," remap\n");
input->one(cmd); input->one(cmd);
if (restart2data) snprintf(cmd,256,"write_data"); if (restart2data) strcpy(cmd,"write_data");
else snprintf(cmd,256,"write_dump"); else strcpy(cmd,"write_dump");
for (iarg = wfirst; iarg < wlast; iarg++) for (iarg = wfirst; iarg < wlast; iarg++)
sprintf(&cmd[strlen(cmd)]," %s",arg[iarg]); snprintf(&cmd[strlen(cmd)],246-strlen(cmd)," %s",arg[iarg]);
if (restart2data) strcat(cmd," noinit\n"); if (restart2data) strcat(cmd," noinit\n");
else strcat(cmd,"\n");
input->one(cmd); input->one(cmd);
error->done(0); error->done(0);
} }