asan: alpha-vms: buffer overflow
Alan Modra
amodra@gmail.com
Sun Oct 25 11:56:56 GMT 2020
* vms-misc.c (_bfd_vms_save_counted_string): Count length byte
towards maxlen.
diff --git a/bfd/vms-misc.c b/bfd/vms-misc.c
index 0826456ef0..70dd0030d5 100644
--- a/bfd/vms-misc.c
+++ b/bfd/vms-misc.c
@@ -163,9 +163,12 @@ _bfd_vms_save_sized_string (bfd *abfd, unsigned char *str, size_t size)
char *
_bfd_vms_save_counted_string (bfd *abfd, unsigned char *ptr, size_t maxlen)
{
- unsigned int len = *ptr++;
+ unsigned int len;
- if (len > maxlen)
+ if (maxlen == 0)
+ return NULL;
+ len = *ptr++;
+ if (len > maxlen - 1)
return NULL;
return _bfd_vms_save_sized_string (abfd, ptr, len);
}
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list