On Sat, 11 Jan 2003, Thomas Arp wrote:
> Can't this be fixed by changing calls to snprintf to this?
>
> len += snprintf(MIN(sizeof(buf), buf+len),
> MIN(sizeof(buf), sizeof(buf)-len),
> "text here");
I take it you meant
len += snprintf(buf + len, MAX(0, sizeof(buf) - len), "text here");
in which case, yes, mostly. However, non-standard implementations of
snprintf(), such as that in older glibc versions, return -1 if the string
to be printed wouldn't fit. On these platforms, this version could
overflow. For a portable solution, look at how George did it in stock
code.
-dak
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/26/03 PDT