From fe3a28958a2483709832ce77bbe5b02c28602f29 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sun, 20 May 2018 17:26:04 -0400 Subject: [PATCH] Appearance: Use BString::SetToFormat instead of sprintf to create hex color. Fixes a GCC7 Werror about (potential) format overflow. --- src/preferences/appearance/ColorPreview.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/preferences/appearance/ColorPreview.cpp b/src/preferences/appearance/ColorPreview.cpp index 3b522d52f6..94bfbf283f 100644 --- a/src/preferences/appearance/ColorPreview.cpp +++ b/src/preferences/appearance/ColorPreview.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -227,11 +228,11 @@ ColorPreview::SetMode(bool rectangle) void ColorPreview::_DragColor(BPoint where) { - char hexString[7]; - sprintf(hexString, "#%.2X%.2X%.2X", fColor.red, fColor.green, fColor.blue); + BString hexStr; + hexStr.SetToFormat("#%.2X%.2X%.2X", fColor.red, fColor.green, fColor.blue); BMessage message(B_PASTE); - message.AddData("text/plain", B_MIME_TYPE, &hexString, sizeof(hexString)); + message.AddData("text/plain", B_MIME_TYPE, hexStr.String(), hexStr.Length()); message.AddData("RGBColor", B_RGB_COLOR_TYPE, &fColor, sizeof(fColor)); BRect rect(0.0f, 0.0f, 20.0f, 20.0f);