Jeffrey Altman 1b1ff8fdd5 krb5: crypto.c avoid realloc to trim memory allocation
decrypt_internal_derived(), decrypt_internal_enc_then_cksum(),
decrypt_internal(), and decrypt_internal_special() execute the
following pattern where 'p' is an allocation of size 'len'

  l = len - n
  memmove(p, p + n, l);
  result->data = realloc(p, l);
  if (result->data == NULL && l != 0) {
      free(p);
      return krb5_enomem(context);
  }
  result->length = l;

which when compiled by gcc 13.0.1-0.12.fc38 or gcc-13.0.1-0.13.fc39
generates the following warning

  warning: pointer 'p' may be used after 'realloc' [-Wuse-after-free]

The C language specification indicates that it is only safe to free()
the pointer passed to realloc() if errno is set to ENOMEM.  Yet the
warning is generated by the following pattern

  l = len - n
  memmove(p, p + n, l);
  errno = 0;
  result->data = realloc(p, l);
  if (result->data == NULL && l != 0) {
      if (errno == ENOMEM)
          free(p);
      return krb5_enomem(context);
  }
  result->length = l;

The value of performing the realloc() is questionable.  realloc()
in many cases will need to perform a second allocation of the
smaller size and then perform a memcpy() which will slow down
the operation without saving much memory.  The allocation is already
very small.

This change avoids the warning by removing the realloc() entirely.
2023-05-03 17:02:34 -04:00
2023-01-07 11:40:44 +11:00
2022-12-19 17:54:11 -06:00
2022-11-17 19:20:08 -06:00
2020-04-15 19:05:21 -05:00
2022-01-20 12:49:19 -05:00
2004-02-12 14:19:16 +00:00
2000-06-07 10:01:25 +00:00
2002-08-21 13:29:08 +00:00
2019-06-07 22:03:05 -04:00
2023-01-12 10:19:35 -06:00
2014-08-23 19:14:10 -07:00
2022-01-14 20:10:19 -06:00
2022-11-15 17:53:54 -06:00
2019-11-20 18:14:44 -05:00
2020-06-26 11:29:15 -04:00
2022-02-12 15:00:59 -06:00
2019-06-09 13:43:47 -04:00
2010-01-05 19:21:45 +01:00

GitHub Build Workflow GitHub Build Workflow GitHub Build Workflow Appveyor-CI build (Windows) Coverage Status

Heimdal

Heimdal is an implementation of:

  • ASN.1/DER,
  • PKIX, and
  • Kerberos.

For information how to install see here.

There are man pages for most of the commands.

Bug reports and bugs are appreciated. Use GitHub issues.

For more information see the project homepage https://heimdal.software/heimdal/ or the mailing lists:

heimdal-announce@heimdal.software low-volume announcement heimdal-discuss@heimdal.software high-volume discussion

send mail to heimdal-announce-subscribe@heimdal.software and heimdal-discuss-subscribe@heimdal.software respectively to subscribe.

Build Status

GitHub Build Workflow GitHub Build Workflow GitHub Build Workflow Appveyor-CI build (Windows) Coverage Status

Languages
C 92.1%
Roff 2.8%
Shell 2.3%
Makefile 0.7%
M4 0.5%
Other 1.4%