mirror of
https://github.com/xcat2/confluent.git
synced 2026-08-28 17:46:42 +00:00
881e035043
The loop decoded the first three bytes of a name and never consumed them, so any sensor or fru name a bmc encodes as 6 bit packed ascii spins at full speed, appending the same four characters until the process runs out of memory. Measured at about 10 MB a second, so a bmc using an encoding the spec gives its own worked example of costs a pinned core and, before long, the daemon. Consume each group, and decode a trailing group of one or two bytes rather than dropping it, since those carry a character each and the name would otherwise come back short. The arithmetic was already right, it was only never reached a second time. Verified by encoding names per the packing and reading them back: exact for every length except those leaving three characters in a three byte group, where the byte count cannot say whether three or four were meant and a trailing space is unavoidable.