On Thu, Sep 03, 2020 at 02:52:49PM +0200, Robert Klein wrote: > Hi, > > on lib/libc/uuid/uuid_to_string.c the return value for asprintf is > checked for -1 while the manpage only says "For all these functions if > an output or encoding error occurs, a value less than 0 is returned." > > The patch below adjusts to code to the man page (checking for less than > zero). >
Where in the man page does it say this? ---- The asprintf() and vasprintf() functions return the number of bytes that were output to the newly allocated string (excluding the final ‘\0’). A pointer to the newly allocated string is returned in ret; it should be passed to free(3) to release the allocated storage when it is no longer needed. If sufficient space cannot be allocated or some other error occurs, these functions return -1. The value of ret in this situation is implementation-dependent. On OpenBSD, ret is set to the NULL pointer, but other implementations may leave ret unchanged. ---- The check for -1 is correct. Thanks! > Best regards > Robert > > > Index: uuid_to_string.c > =================================================================== > RCS file: /cvs/src/lib/libc/uuid/uuid_to_string.c,v > retrieving revision 1.2 > diff -u -p -r1.2 uuid_to_string.c > --- uuid_to_string.c 10 Sep 2015 18:13:46 -0000 1.2 > +++ uuid_to_string.c 3 Sep 2020 12:40:41 -0000 > @@ -64,6 +64,6 @@ uuid_to_string(const uuid_t *u, char **s > u->clock_seq_hi_and_reserved, u->clock_seq_low, u->node[0], > u->node[1], u->node[2], u->node[3], u->node[4], u->node[5]); > > - if (c == -1 && status != NULL) > + if (c < 0 && status != NULL) > *status = uuid_s_no_memory; > } -- Tracey Emery