Welcome! Log In Create A New Profile

Advanced

Re: ngx_snprintf question

Piotr Sikora
April 10, 2012 10:56AM
Hi,

> I am getting unexpected results from ngx_snprintf in the following
> statement:
>
> ngx_snprintf((u_char *) buf, sizeof(buf), "%s\n",
> peer->peer_config->name.data);
>
> 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.

Best regards,
Piotr Sikora < piotr.sikora@frickle.com >

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

ngx_snprintf question

Mike Gagnon 1973 April 10, 2012 10:14AM

Re: ngx_snprintf question

Piotr Sikora 645 April 10, 2012 10:56AM

Re: ngx_snprintf question

Mike Gagnon 609 April 10, 2012 11:02AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 176
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready