diff --git a/src/epanet.c b/src/epanet.c index 0a57aa7..c715b47 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -1234,7 +1234,7 @@ int DLLEXPORT EN_setoption(EN_Project p, int option, double value) if (demand->Pat == tmpPat) { demand->Pat = pat; - demand->Name = xstrcpy(&demand->Name, "", MAXMSG); + demand->Name = xstrcpy(&demand->Name, "", MAXID); } } } @@ -2776,11 +2776,14 @@ int DLLEXPORT EN_setdemandname(EN_Project p, int nodeIndex, int demandIndex, if (!p->Openflag) return 102; if (nodeIndex <= 0 || nodeIndex > p->network.Njuncs) return 203; + // Check that demandName is not too long + if (strlen(demandName) > MAXID) return 250; + // Locate demand category record and assign demandName to it for (d = p->network.Node[nodeIndex].D; n < demandIndex && d->next != NULL; d = d->next) n++; if (n != demandIndex) return 253; - d->Name = xstrcpy(&d->Name, demandName, MAXMSG); + d->Name = xstrcpy(&d->Name, demandName, MAXID); return 0; } diff --git a/src/input3.c b/src/input3.c index fb35da2..2608f75 100644 --- a/src/input3.c +++ b/src/input3.c @@ -742,7 +742,7 @@ int demanddata(Project *pr) // with what is specified in this section demand->Base = y; demand->Pat = p; - demand->Name = xstrcpy(&demand->Name, parser->Comment, MAXMSG); + demand->Name = xstrcpy(&demand->Name, parser->Comment, MAXID); hyd->NodeDemand[j] = MISSING; // marker - next iteration will append a new category. } @@ -755,7 +755,7 @@ int demanddata(Project *pr) if (demand == NULL) return 101; demand->Base = y; demand->Pat = p; - demand->Name = xstrcpy(&demand->Name, parser->Comment, MAXMSG); + demand->Name = xstrcpy(&demand->Name, parser->Comment, MAXID); demand->next = NULL; cur_demand->next = demand; }