Dear Holger On 02.03.2014 08:06, Holger Hans Peter Freyther wrote:
+ nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + "%s[L%d]> ", + osmo_hexdump(start, lxhs[i] - start), + i+1);
+ nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + "%s", osmo_hexdump(start, msg->tail - start)); + nchars = snprintf(buf, sizeof(buf) - buf_offs, + "!!! L%d out of range", i+1);
So sizeof(buf) - buf_offs can only be 0 when the output is already null terminated?
No, the expressions can never be 0 due to if (nchars < 0 || nchars + buf_offs >= sizeof(buf)) return "ERROR"; But even if it could, the string has already been \0 terminated by prior calls to snprintf (the initial size value is always > 0). Jacob
kind regards holger