Mesa (master): gallivm: Fix potential buffer overflowing in strncat.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Jun 28 10:47:27 UTC 2012


Module: Mesa
Branch: master
Commit: bf679ce1dcc9cb90bb0092a550a03ad391f6ba72
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf679ce1dcc9cb90bb0092a550a03ad391f6ba72

Author: Johannes Obermayr <johannesobermayr at gmx.de>
Date:   Thu Jun 28 10:16:47 2012 +0200

gallivm: Fix potential buffer overflowing in strncat.

Signed-off-by: José Fonseca <jfonseca at vmware.com>

---

 src/gallium/auxiliary/gallivm/lp_bld_printf.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
index 16ef25a..8549b87 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
@@ -118,16 +118,16 @@ lp_build_print_value(struct gallivm_state *gallivm,
 
    params[1] = lp_build_const_string(gallivm, msg);
    if (length == 1) {
-      util_strncat(format, type_fmt, sizeof format);
+      util_strncat(format, type_fmt, sizeof(format) - strlen(format) - 1);
       params[2] = value;
    } else {
       for (i = 0; i < length; ++i) {
-         util_strncat(format, type_fmt, sizeof format);
+         util_strncat(format, type_fmt, sizeof(format) - strlen(format) - 1);
          params[2 + i] = LLVMBuildExtractElement(builder, value, lp_build_const_int32(gallivm, i), "");
       }
    }
 
-   util_strncat(format, "\n", sizeof format);
+   util_strncat(format, "\n", sizeof(format) - strlen(format) - 1);
 
    params[0] = lp_build_const_string(gallivm, format);
    return lp_build_print_args(gallivm, 2 + length, params);




More information about the mesa-commit mailing list