Clamp size to length if snprintf ever indicates overflow
authorderaadt <deraadt@openbsd.org>
Wed, 5 Apr 2017 15:57:11 +0000 (15:57 +0000)
committerderaadt <deraadt@openbsd.org>
Wed, 5 Apr 2017 15:57:11 +0000 (15:57 +0000)
w/ millert

usr.bin/systat/engine.c

index 2844f87..64cfc86 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: engine.c,v 1.20 2017/04/05 04:44:03 deraadt Exp $       */
+/* $Id: engine.c,v 1.21 2017/04/05 15:57:11 deraadt Exp $       */
 /*
  * Copyright (c) 2001, 2007 Can Erkin Acar <canacar@openbsd.org>
  *
@@ -347,6 +347,8 @@ print_bar_title(field_def *fld)
                }
 
                len = snprintf(buf, sizeof(buf), "%d\\", val);
+               if (len >= sizeof(buf))
+                       len = strlen(buf);
                while (cur < pos - len) {
                        tbprintf(" ");
                        cur++;