diff --git a/data-access/engine/src/common/src/m4vl.cpp b/data-access/engine/src/common/src/m4vl.cpp index 33a1c0912eb2aa56b37024a0beb6d75ef46e7b69..68f6e27be27dc96279e4e7b2cf3789bd1a284c5e 100644 --- a/data-access/engine/src/common/src/m4vl.cpp +++ b/data-access/engine/src/common/src/m4vl.cpp @@ -410,17 +410,32 @@ void M4VL_merge_config_init( s->dim = dim; char mdir[MPATHLEN];// to be created by timestamp and pid+tid - /* sprintf(mdir, "MERGE_%s_%s", - usec_timestamp(s->ts,TS_LEN), - get_pid_tid(s->pidtidstr)); - */ sprintf(mdir, "MERGE_%s",jobid); + /* sprintf(mdir, "MERGE_%s_%s", + usec_timestamp(s->ts,TS_LEN), + get_pid_tid(s->pidtidstr)); */ + sprintf(mdir, "MERGE_%s", jobid); + if((strlen(s->mpath) + strlen(s->mroot) + 2) > MPATHLEN) + throw runtime_error("too long path for mpath"); - sprintf(s->mpath, "%s/%s", s->mroot, mdir); + strcpy(s->mpath, s->mroot); + strcat(s->mpath, "/"); + strcat(s->mpath, mdir); + //sprintf(s->mpath, "%s/%s", s->mroot, mdir); - sprintf(s->mpathin, "%s/%s", s->mpath, "in"); - sprintf(s->mpathproj, "%s/%s", s->mpath, "proj"); + if((strlen(s->mpath) + 2 + 2) > MPATHLEN) + throw runtime_error("too long path for mapthin"); + strcpy(s->mpathin, s->mpath); + strcat(s->mpathin, "/in"); + //sprintf(s->mpathin, "%s/%s", s->mpath, "in"); + + if((strlen(s->mpath) + 4 + 2) > MPATHLEN) + throw runtime_error("too long path for mapthin"); + + strcpy(s->mpathproj, s->mpath); + strcat(s->mpathproj, "/proj"); + //sprintf(s->mpathproj, "%s/%s", s->mpath, "proj"); sprintf(s->cmnhdr,"%s/common.hdr",s->mpath);