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