Check some error returns from *asprintf()

This avoids these compiler warnings on Ubuntu 18.04
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)

expand_path.c: In function ‘expand_token’:
expand_path.c:493:17: warning: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result [-Wunused-result]
                 asprintf(&arg, "%.*s", (int)(token_end - colon - 1), colon + 1);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log.c: In function ‘fmtkv’:
log.c:646:5: warning: ignoring return value of ‘vasprintf’, declared with attribute warn_unused_result [-Wunused-result]
     vasprintf(&buf1, fmt, ap);
     ^~~~~~~~~~~~~~~~~~~~~~~~~

mech/context.c: In function ‘gss_mg_set_error_string’:
mech/context.c:212:5: warning: ignoring return value of ‘vasprintf’, declared with attribute warn_unused_result [-Wunused-result]
     (void) vasprintf(&str, fmt, ap);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mech/context.c: In function ‘_gss_mg_log_name’:
mech/context.c:319:6: warning: ignoring return value of ‘vasprintf’, declared with attribute warn_unused_result [-Wunused-result]
      (void) vasprintf(&str, fmt, ap);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mech/context.c: In function ‘_gss_mg_log_cred’:
mech/context.c:346:5: warning: ignoring return value of ‘vasprintf’, declared with attribute warn_unused_result [-Wunused-result]
     (void) vasprintf(&str, fmt, ap);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

kerberos5.c: In function ‘_kdc_set_e_text’:
kerberos5.c:338:5: warning: ignoring return value of ‘vasprintf’, declared with attribute warn_unused_result [-Wunused-result]
     vasprintf(&e_text, fmt, ap);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Andrew Bartlett
2020-05-28 11:09:09 +12:00
committed by Jeffrey Altman
parent f91f786dd6
commit 1a65611f61
4 changed files with 22 additions and 16 deletions

View File

@@ -203,16 +203,17 @@ gss_mg_set_error_string(gss_OID mech,
char *str = NULL;
OM_uint32 junk;
va_list ap;
int vasprintf_ret;
mg = _gss_mechglue_thread();
if (mg == NULL)
return maj;
va_start(ap, fmt);
(void) vasprintf(&str, fmt, ap);
vasprintf_ret = vasprintf(&str, fmt, ap);
va_end(ap);
if (str) {
if (vasprintf_ret >= 0 && str) {
gss_release_buffer(&junk, &mg->min_error);
mg->mech = mech;
@@ -303,6 +304,7 @@ _gss_mg_log_name(int level,
if (_gss_find_mn(&junk, name, mech_type, &mn) == GSS_S_COMPLETE) {
OM_uint32 maj_stat = GSS_S_COMPLETE;
gss_buffer_desc namebuf;
int ret;
if (mn == NULL) {
namebuf.value = "no name";
@@ -316,10 +318,10 @@ _gss_mg_log_name(int level,
va_list ap;
va_start(ap, fmt);
(void) vasprintf(&str, fmt, ap);
ret = vasprintf(&str, fmt, ap);
va_end(ap);
if (str)
if (ret >= 0 && str)
_gss_mg_log(level, "%s %.*s", str,
(int)namebuf.length, (char *)namebuf.value);
free(str);
@@ -338,15 +340,16 @@ _gss_mg_log_cred(int level,
struct _gss_mechanism_cred *mc;
char *str;
va_list ap;
int ret;
if (!_gss_mg_log_level(level))
return;
va_start(ap, fmt);
(void) vasprintf(&str, fmt, ap);
ret = vasprintf(&str, fmt, ap);
va_end(ap);
if (cred) {
if (ret >=0 && cred) {
HEIM_TAILQ_FOREACH(mc, &cred->gc_mc, gmc_link) {
_gss_mg_log(1, "%s: %s", str, mc->gmc_mech->gm_name);
}