mirror of git://sourceware.org/git/glibc.git
nss: Group merge does not react to ERANGE during merge (bug 33361)
The break statement in CHECK_MERGE is expected to exit the surrounding while loop, not the do-while loop with in the macro. Remove the do-while loop from the macro. It is not needed to turn the macro expansion into a single statement due to the way CHECK_MERGE is used (and the statement expression would cover this anyway). Reviewed-by: Collin Funk <collin.funk1@gmail.com>
This commit is contained in:
parent
cae3c9e3a1
commit
0fceed2545
|
@ -157,19 +157,15 @@ __merge_einval (LOOKUP_TYPE *a,
|
|||
|
||||
#define CHECK_MERGE(err, status) \
|
||||
({ \
|
||||
do \
|
||||
if (err) \
|
||||
{ \
|
||||
if (err) \
|
||||
{ \
|
||||
__set_errno (err); \
|
||||
if (err == ERANGE) \
|
||||
status = NSS_STATUS_TRYAGAIN; \
|
||||
else \
|
||||
status = NSS_STATUS_UNAVAIL; \
|
||||
break; \
|
||||
} \
|
||||
__set_errno (err); \
|
||||
if (err == ERANGE) \
|
||||
status = NSS_STATUS_TRYAGAIN; \
|
||||
else \
|
||||
status = NSS_STATUS_UNAVAIL; \
|
||||
break; \
|
||||
} \
|
||||
while (0); \
|
||||
})
|
||||
|
||||
/* Type of the lookup function we need here. */
|
||||
|
|
Loading…
Reference in New Issue