-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Claus Henriksen <[EMAIL PROTECTED]> writes:

> Yep/Thanx!! 
> I also discovered + corrected the problem, and my page has been updated.  

Good.

> >  size_t buflen, bufresult;
> >  ...
> >
> >  buflen  = strlen(p->key)      + 1 /* ':' */ +
> >            strlen(type_stat)   + 1 /* ':' */ +
> >            strlen(tag_stat)    + 1 /* ':' */ +
> >            strlen(li->rev_old) + 1 /* '\0' */
> >
> >  argBuf = xmalloc ( buflen );
> >  bufresult = snprintf (argBuf, buflen, "%s:%s:%s:%s",
> >                    p->key, type_stat, tag_stat, li->rev_old);
> >  if (bufresult > buflen)
> 
> If this 'if' is true, wouldn't you say that we have a problem with
> wrong/bad terminated strings anyway, and that this would lead to a
> xmalloc/realloc-problem and -errormessage some time after all?

Provided the if condition is true, there would likely be some kind of
problem somewhere.

I wish that vsprintf() were more portable as that is really the right
way to deal with the problem.

> I mean, how much is 'to much' e.g. (buflen-bufresult)>PATH_MAX is
> probably a bad sign? (PATH_MAX just chosen since its a resonable big
> number).

It would not be a good sign... if you don't want to have the extra logic
to try again, maybe just putting an

   assert (bufresult < buflen);

should be sufficient.

In any case, I hope your code finds the audience that wants it.

> BR,
>   Claus
> 
> (I wonder how people can sell proprietary cm-solutions, when you know that 
> corrections to the their code will probably never will be discussed 
> openly/thoroughly enough like CVS corrections are discussed here in this 
> info-list.)

:-)

        -- Mark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQE/+nnL3x41pRYZE/gRAqCdAKDB5+i/lpARNcNpGdMi0N5FTBFHOACffbTZ
9Lv2eKcVBkDzOoNWj7zl12o=
=8mgv
-----END PGP SIGNATURE-----


_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs

Reply via email to