Systems with limited storage, such as embedded systems using emmc or sd card devices, can be accidentally driven into failure by some error or event which triggers lots of unexpected high-rate logging. Such logging can quickly fill up a small filesystem, which then triggers more errors, leading to more logging, and a quick death-spiral for the overall system. Running newsyslog(8) more often ameliorates the problem, but doesn't completely protect against it.
These changes add a new option to the pathname action lines in syslog.conf which limits the size of the file by specifying "R <size>" after the filename. If the file grows beyond the given size before it is rotated out, syslogd goes into "recyle mode" on that file, where the last 32K of the file is treated as a small circular buffer. The last 32K gets repeatedly overwritten until the next rotation, preserving the vast majority of the file, and thus hopefully preserving some information about the original error or event which triggered the unexpected volume of logging.