piotr.sikora at frickle.com
Tue Apr 10 14:54:04 UTC 2012
> I am getting unexpected results from ngx_snprintf in the following
> ngx_snprintf((u_char *) buf, sizeof(buf), "%s\n",
> with peer->peer_config->name.data == "127.0.0.1:9000\0".
> I expect ngx_snprintf to yield buf == "127.0.0.1:9000\n\0", but
> instead it yields buf == "127.0.0.1:9000\n\bf\0" (I was not expecting
> that '\bf' character to be inserted there.)
> When I change ngx_snprintf to just snprintf, it works as expected.
ngx_snprintf isn't snprintf-equivalent (I was burned by this once myself),
it doesn't add trailing '\0' and the "\bf\0" you're seeing is just the data
that was in the buffer before.
You should either add "%Z" ('\0') to the format string or explicitly set
'\0' yourself after ngx_snprintf() call.
Piotr Sikora < piotr.sikora at frickle.com >
More information about the nginx-devel