In file included from ../../../../src/lib/krb5/krb/recvauth.c:31:
../../../../src/lib/krb5/krb/recvauth.c: In function ‘recvauth_common’:
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree’
   82 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth_version’: events 1-2
    |
    |  256 | krb5_recvauth_version(krb5_context context,
    |      | ^~~~~~~~~~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth_version|......
    |  267 |     return recvauth_common (context, auth_context, fd, 0,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth_version|  268 |        server, flags, keytab, ticket, version);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘true’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:79:3: note: in expansion of macro ‘krb5_xfree|   79 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:79:3: note: in expansion of macro ‘krb5_xfree|   79 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (11) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree’
   82 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘true’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:79:3: note: in expansion of macro ‘krb5_xfree|   79 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:79:3: note: in expansion of macro ‘krb5_xfree|   79 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (11) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree’
   93 |   krb5_xfree(inbuf.data);
      |   ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: events 11-17
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘false’ branch...
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |          |
           |      |     |          (12) ...to here
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |             |              |
           |      |     |             |              (16) ...to here
           |      |     |             (17) following ‘true’ branch...
           |      |     (14) ...to here
           |      |     (15) following ‘true’ branch (when ‘appl_version’ is non-NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree|   93 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree|   93 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree’
   93 |   krb5_xfree(inbuf.data);
      |   ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘true’ branch...
           |recvauth_common’: events 12-17
           |
           |   85 |      problem = KRB5_SENDAUTH_BADAUTHVERS;
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~         
           |      |     |
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |             |              |
           |      |     |             |              (16) ...to here
           |      |     |             (17) following ‘true’ branch...
           |      |     (14) ...to here
           |      |     (15) following ‘true’ branch (when ‘appl_version’ is non-NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree|   93 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:93:3: note: in expansion of macro ‘krb5_xfree|   93 |   krb5_xfree(inbuf.data);
           |      |   ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth_version’: events 1-2
    |
    |  256 | krb5_recvauth_version(krb5_context context,
    |      | ^~~~~~~~~~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth_version|......
    |  267 |     return recvauth_common (context, auth_context, fd, 0,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth_version|  268 |        server, flags, keytab, ticket, version);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘true’ branch...
           |recvauth_common’: events 12-17
           |
           |   85 |      problem = KRB5_SENDAUTH_BADAUTHVERS;
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~         
           |      |     |
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~         
           |      |     |
           |      |     (14) ...to here
           |      |     (15) following ‘false’ branch (when ‘appl_version’ is NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~         
           |      |     |
           |      |     (16) ...to here
           |      |     (17) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘true’ branch...
           |recvauth_common’: events 12-19
           |
           |   85 |      problem = KRB5_SENDAUTH_BADAUTHVERS;
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~         
           |      |     |
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |             |              |
           |      |     |             |              (16) ...to here
           |      |     |             (17) following ‘false’ branch...
           |      |     (14) ...to here
           |      |     (15) following ‘true’ branch (when ‘appl_version’ is non-NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~         
           |      |     |
           |      |     (18) ...to here
           |      |     (19) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 20
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (20) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 21
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (21) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: events 11-19
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘false’ branch...
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |          |
           |      |     |          (12) ...to here
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |             |              |
           |      |     |             |              (16) ...to here
           |      |     |             (17) following ‘false’ branch...
           |      |     (14) ...to here
           |      |     (15) following ‘true’ branch (when ‘appl_version’ is non-NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~
           |      |     |
           |      |     (18) ...to here
           |      |     (19) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 20
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (20) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 21
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (21) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth_version’: events 1-2
    |
    |  256 | krb5_recvauth_version(krb5_context context,
    |      | ^~~~~~~~~~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth_version|......
    |  267 |     return recvauth_common (context, auth_context, fd, 0,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth_version|  268 |        server, flags, keytab, ticket, version);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: events 11-17
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘false’ branch...
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |          |
           |      |     |          (12) ...to here
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~
           |      |     |
           |      |     (14) ...to here
           |      |     (15) following ‘false’ branch (when ‘appl_version’ is NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~
           |      |     |
           |      |     (16) ...to here
           |      |     (17) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘true’ branch...
           |recvauth_common’: events 12-17
           |
           |   85 |      problem = KRB5_SENDAUTH_BADAUTHVERS;
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~         
           |      |     |
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~         
           |      |     |
           |      |     (14) ...to here
           |      |     (15) following ‘false’ branch (when ‘appl_version’ is NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~         
           |      |     |
           |      |     (16) ...to here
           |      |     (17) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth_version’: events 1-2
    |
    |  256 | krb5_recvauth_version(krb5_context context,
    |      | ^~~~~~~~~~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth_version|......
    |  267 |     return recvauth_common (context, auth_context, fd, 0,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth_version|  268 |        server, flags, keytab, ticket, version);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 11
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘true’ branch...
           |recvauth_common’: events 12-19
           |
           |   85 |      problem = KRB5_SENDAUTH_BADAUTHVERS;
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~         
           |      |     |
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~         
           |      |     |
           |      |     (14) ...to here
           |      |     (15) following ‘false’ branch (when ‘appl_version’ is NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~~~~~~~~~~~~~~~~~~~~
           |      |     |        |
           |      |     |        (18) ...to here
           |      |     |        (19) following ‘false’ branch (when ‘problem != 0’)...
           |      |     (16) ...to here
           |      |     (17) following ‘true’ branch (when ‘version’ is non-NULL)...
           |recvauth_common’: event 20
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (20) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 21
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (21) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |
../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25: warning: double-‘free’ of ‘inbuf.data’ [CWE-415] [-Wanalyzer-double-free]
 1670 | #define krb5_xfree(val) free((char *)(val))
      |                         ^~~~~~~~~~~~~~~~~~~
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree’
  100 |      krb5_xfree(inbuf.data);
      |      ^~~~~~~~~~krb5_recvauth’: events 1-2
    |
    |  249 | krb5_recvauth(krb5_context context, krb5_auth_context *auth_context, krb5_pointer fd, char *appl_version, krb5_principal server, krb5_int32 flags, krb5_keytab keytab, krb5_ticket **ticket)
    |      | ^~~~~~~~~~~~~
    |      | |
    |      | (1) entry to ‘krb5_recvauth|  250 | {
    |  251 |     return recvauth_common (context, auth_context, fd, appl_version,
    |      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |            |
    |      |            (2) calling ‘recvauth_common’ from ‘krb5_recvauth|  252 |        server, flags, keytab, ticket, 0);
    |      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |
    +--> recvauth_common’: events 3-8
           |
           |   41 | recvauth_common(krb5_context context,
           |      | ^~~~~~~~~~~~~~~
           |      | |
           |      | (3) entry to ‘recvauth_common|......
           |   72 |  if (!(flags & KRB5_RECVAUTH_SKIP_VERSION)) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘true’ branch...
           |......
           |   76 |      if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |         ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |         |          |
           |      |         |          (5) ...to here
           |      |         (6) following ‘false’ branch (when ‘retval == 0’)...
           |   77 |   return(retval);
           |   78 |      if (strcmp(inbuf.data, sendauth_version)) {
           |      |         ~       ~~~~~~~~~~
           |      |         |            |
           |      |         |            (7) ...to here
           |      |         (8) following ‘false’ branch...
           |recvauth_common’: event 9
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (9) ...to here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 10
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (10) first ‘free’ here
../../../../src/lib/krb5/krb/recvauth.c:82:6: note: in expansion of macro ‘krb5_xfree|   82 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: events 11-17
           |
           |   84 |  if (flags & KRB5_RECVAUTH_BADAUTHVERS)
           |      |     ^
           |      |     |
           |      |     (11) following ‘false’ branch...
           |......
           |   90 |  if ((retval = krb5_read_message(context, fd, &inbuf)))
           |      |     ~          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           |      |     |          |
           |      |     |          (12) ...to here
           |      |     (13) following ‘false’ branch (when ‘retval == 0’)...
           |   91 |   return(retval);
           |   92 |  if (appl_version && strcmp(inbuf.data, appl_version)) {
           |      |     ~
           |      |     |
           |      |     (14) ...to here
           |      |     (15) following ‘false’ branch (when ‘appl_version’ is NULL)...
           |......
           |   97 |  if (version && !problem)
           |      |     ~
           |      |     |
           |      |     (16) ...to here
           |      |     (17) following ‘false’ branch (when ‘version’ is NULL)...
           |recvauth_common’: event 18
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:30:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                              ^~~~~~~~~~~~~
           |      |                              |
           |      |                              (18) ...to here
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |recvauth_common’: event 19
           |
           |../../../../src/lib/krb5/krb/../../../include/k5-int.h:1670:25:
           | 1670 | #define krb5_xfree(val) free((char *)(val))
           |      |                         ^~~~~~~~~~~~~~~~~~~
           |      |                         |
           |      |                         (19) second ‘free’ here; first ‘free’ was at (10)
../../../../src/lib/krb5/krb/recvauth.c:100:6: note: in expansion of macro ‘krb5_xfree|  100 |      krb5_xfree(inbuf.data);
           |      |      ^~~~~~~~~~
           |