I believe your checks are not correct.
in my opinion they are equivalent to checks !=.
I suggest a simple fix.
only fix!
diff --git a/lib/gstr.c b/lib/gstr.c
index e91a3a1..50bf6e4 100644
--- a/lib/gstr.c
+++ b/lib/gstr.c
@@ -40,7 +40,7 @@
     }
   else
     {
-      if (dest_tot_size - dest_size > 0)
+      if (dest_tot_size > dest_size)
 	{
 	  strncat (dest, src, (dest_tot_size - dest_size) - 1);
 	  dest[dest_tot_size - 1] = 0;