>> -        strcat(linedata, p);
>> +        for (i = 0; (linedata[i] = p[i]) != '\0'; ++i) ;

> asan2 reported that this line had a strcpy whose source/destination
> overlapped.

Then asan2 is wrong; the original line (the - line above) does not have
any strcpy at all.  It has a strcat.  (Perhaps the strcat source and
destination overlap, and asan2 is wrong only in that it reports the
wrong call in its complaint?)  But the replacement code (the + line
above) implements (loosely put) strcpy, not strcat.  Perhaps it would
work better to replace the strcat with code that actually concatenates,
preserving the presumably-intended semantics?

Maybe something like (completely untested)

        for (i=0,j=strlen(linedata);(linedata[j]=p[i]);i++,j++) ;

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mo...@rodents-montreal.org
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Reply via email to