1b32cf0583db4331765a056c45ff4fc98c36b649
galt
  Tue Dec 31 22:39:16 2024 -0800
minor fix in clarity for safecpy in lib.

diff --git src/lib/common.c src/lib/common.c
index 08b4e27..e6e5e85 100644
--- src/lib/common.c
+++ src/lib/common.c
@@ -3527,31 +3527,31 @@
  * appended. */
 {
 int sz, len = strlen(buffer);;
 va_list args;
 va_start(args, format);
 sz = vasafef(buffer + len, bufSize - len, format, args);
 va_end(args);
 return sz;
 }
 
 
 void safecpy(char *buf, size_t bufSize, const char *src)
 /* copy a string to a buffer, with bounds checking.*/
 {
 size_t slen = strlen(src);
-if (slen > bufSize-1)
+if ((slen + 1) > bufSize)
     errAbort("buffer overflow, size %lld, string size: %lld", (long long)bufSize, (long long)slen);
 strcpy(buf, src);
 }
 
 void safencpy(char *buf, size_t bufSize, const char *src, size_t n)
 /* copy n characters from a string to a buffer, with bounds checking.
  * Unlike strncpy, always null terminates the result */
 {
 if (n > bufSize-1)
     errAbort("buffer overflow, size %lld, substring size: %lld", (long long)bufSize, (long long)n);
 // strlen(src) can take a long time when src is for example a pointer into a chromosome sequence.
 // Instead of setting slen to max(strlen(src), n), just stop counting length at n.
 size_t slen = 0;
 while (src[slen] != '\0' && slen < n)
     slen++;