diff options
author | popcornmix <popcornmix@gmail.com> | 2013-06-17 23:29:30 +0100 |
---|---|---|
committer | popcornmix <popcornmix@gmail.com> | 2013-06-18 11:32:31 +0100 |
commit | 7abe83620ce75bf4d7e12e0bc6f6f7425fb04ae7 (patch) | |
tree | 9e2bfb8122e0b05f464fd5bc94d9ea0f52f6b709 | |
parent | 0faa3d293a6cffa4f76ece1a236155521e07b392 (diff) |
[rbp] Avoid overflow in version string
gedit complains about invalid characters when opening xbmc.log file produced by pi
Since the change from perforce revision number to git hash, the version string has increased in size.
Fortunately we don't overrun the "response" buffer.
Unfortunately when buffer doesn't fit, it is not null terminated, so logging message pulls in garbage.
Version string looks like:
Jun 17 2013 20:49:11
Copyright (c) 2012 Broadcom
version d380dde43fe729f043befb5cf775f99e54586cde (clean) (release)
So, 80 characters is not enough (it is about 115 plus newlines).
160 seems more than enough, but truncate the string just in case.
-rw-r--r-- | xbmc/linux/RBP.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/xbmc/linux/RBP.cpp b/xbmc/linux/RBP.cpp index 8daf161202..a9568e2e50 100644 --- a/xbmc/linux/RBP.cpp +++ b/xbmc/linux/RBP.cpp @@ -55,9 +55,10 @@ bool CRBP::Initialize() void CRBP::LogFirmwareVerison() { - char response[80]; + char response[160]; m_DllBcmHost->vc_gencmd(response, sizeof response, "version"); - CLog::Log(LOGNOTICE, "Raspberry PI firmware version: %s\n", response); + response[sizeof(response) - 1] = '\0'; + CLog::Log(LOGNOTICE, "Raspberry PI firmware version: %s", response); } void CRBP::Deinitialize() |