snprintf() returns number of bytes which would be printed ignoring
possible lack of the space. So this can exceed provided buffer size.

Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]>
---
 opensm/opensm/osm_subnet.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/opensm/opensm/osm_subnet.c b/opensm/opensm/osm_subnet.c
index cd3b4de..02d7426 100644
--- a/opensm/opensm/osm_subnet.c
+++ b/opensm/opensm/osm_subnet.c
@@ -472,7 +472,11 @@ static void log_config_value(char *name, const char *fmt, 
...)
        unsigned n;
        va_start(args, fmt);
        n = snprintf(buf, sizeof(buf), " Loading Cached Option:%s = ", name);
+       if (n > sizeof(buf))
+               n = sizeof(buf);
        n += vsnprintf(buf + n, sizeof(buf) - n, fmt, args);
+       if (n > sizeof(buf))
+               n = sizeof(buf);
        snprintf(buf + n, sizeof(buf) - n, "\n");
        va_end(args);
        printf(buf);
-- 
1.5.5.1.178.g1f811

_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to