Use strncpy to avoid overflow and need return errSize.
Signed-off-by: Yang Rong <[email protected]>
---
backend/src/backend/gen_program.cpp | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/backend/src/backend/gen_program.cpp
b/backend/src/backend/gen_program.cpp
index 65a7ba2..2525825 100644
--- a/backend/src/backend/gen_program.cpp
+++ b/backend/src/backend/gen_program.cpp
@@ -394,10 +394,9 @@ namespace gbe {
if (LLVMLinkModules(wrap(dst), wrap(src), 0, &errMsg)) {
#endif
if (err != NULL && errSize != NULL && stringSize > 0u) {
- if(strlen(errMsg) < stringSize )
- stringSize = strlen(errMsg);
- strcpy(err, errMsg);
- err[stringSize+1] = '\0';
+ strncpy(err, errMsg, stringSize-1);
+ err[stringSize-1] = '\0';
+ *errSize = strlen(err);
}
}
}
--
1.8.3.2
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet