Hi,

On Tue, Jun 07, 2016 at 06:04:54PM +0500, ???????? ?????????????? wrote:
> as I see, there's call to format_hex_ex with separator=NULL here:

Interesting find.  

This code is funny - format_hex_ex() is called from various places with 
separator=NULL, and has been that way since at least 2005... it's part of
the oldest commit we have in git.

Now, that expression

  struct buffer out = alloc_buf_gc (maxoutput ? maxoutput :
                                    ((size * 2) + (size / (space_break_flags & F
HE_SPACE_BREAK_MASK)) * (int) strlen (separator) + 2),
                                    gc);

will of course *only* call strlen(separator) if "maxoutput" is 0
(C short-circuit evaluation of conditionals).  So if all callers respect
that and *either* set "maxoutput > 0" *or* pass "separator != NULL", we're
fine.

The line 152 in ssl_openssl.c is passing in "len", which is not 0...

         const char *key = format_hex_ex (ekm, size, len, 0, NULL, &gc);

... so there will not be a strlen() call.


I wouldn't mind an ASSERT( maxoutput > 0 || separator != NULL ) call
in format_hex_ex(), though.

gert

-- 
USENET is *not* the non-clickable part of WWW!
                                                           //www.muc.de/~gert/
Gert Doering - Munich, Germany                             g...@greenie.muc.de
fax: +49-89-35655025                        g...@net.informatik.tu-muenchen.de

Attachment: signature.asc
Description: PGP signature

Reply via email to