]> granicus.if.org Git - zfs/commit
Fix improper null-byte termination handling
authorNed Bass <bass6@llnl.gov>
Fri, 7 Nov 2014 02:18:32 +0000 (18:18 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 17 Nov 2014 23:28:59 +0000 (15:28 -0800)
commit7b2d78a046aa4695d434478a439a9438521d73af
tree1176ac3d83fc4187a5893786f1cae8b6b30aa25e
parent89b1cd6581528c576bd4ff7f713f671b23b051b5
Fix improper null-byte termination handling

Fix a few cases where null-byte termination of strings was done
unnecessarily or incorrectly.

- The snprintf() function always produces a null-byte terminated string
  for non-negative return values, so it is not necessary to write out a
  null-byte as a separate step.

- Also, it is unsafe to use the return value of snprintf() as an offset
  for placing a null-byte, because if the output was truncated the return
  value is the number of bytes that _would_ have been written had enough
  space been available. Therefore the return value may index beyond the
  array boundaries.

- Finally, snprintf() accounts for the null-byte when limiting its output
  size, so there is no need to pass it a size parameter that is one less
  than the buffer size.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2875
module/zfs/dbuf_stats.c
module/zfs/spa_stats.c