Browse Source

Null-terminate lcd_status_message

Scott Lahteine 7 years ago
parent
commit
25e3e62354
1 changed files with 4 additions and 3 deletions
  1. 4
    3
      Marlin/src/lcd/ultralcd.cpp

+ 4
- 3
Marlin/src/lcd/ultralcd.cpp View File

@@ -5172,6 +5172,7 @@ void lcd_update() {
5172 5172
 inline void pad_message_string() {
5173 5173
   uint8_t i = 0, j = 0;
5174 5174
   char c;
5175
+  lcd_status_message[MAX_MESSAGE_LENGTH] = '\0';
5175 5176
   while ((c = lcd_status_message[i]) && j < LCD_WIDTH) {
5176 5177
     if (PRINTABLE(c)) j++;
5177 5178
     i++;
@@ -5221,7 +5222,7 @@ bool lcd_hasstatus() { return (lcd_status_message[0] != '\0'); }
5221 5222
 
5222 5223
 void lcd_setstatus(const char * const message, const bool persist) {
5223 5224
   if (lcd_status_message_level > 0) return;
5224
-  strncpy(lcd_status_message, message, COUNT(lcd_status_message) - 1);
5225
+  strncpy(lcd_status_message, message, MAX_MESSAGE_LENGTH);
5225 5226
   lcd_finishstatus(persist);
5226 5227
 }
5227 5228
 
@@ -5229,7 +5230,7 @@ void lcd_setstatusPGM(const char * const message, int8_t level) {
5229 5230
   if (level < 0) level = lcd_status_message_level = 0;
5230 5231
   if (level < lcd_status_message_level) return;
5231 5232
   lcd_status_message_level = level;
5232
-  strncpy_P(lcd_status_message, message, COUNT(lcd_status_message) - 1);
5233
+  strncpy_P(lcd_status_message, message, MAX_MESSAGE_LENGTH);
5233 5234
   lcd_finishstatus(level > 0);
5234 5235
 }
5235 5236
 
@@ -5238,7 +5239,7 @@ void lcd_status_printf_P(const uint8_t level, const char * const fmt, ...) {
5238 5239
   lcd_status_message_level = level;
5239 5240
   va_list args;
5240 5241
   va_start(args, fmt);
5241
-  vsnprintf_P(lcd_status_message, COUNT(lcd_status_message) - 1, fmt, args);
5242
+  vsnprintf_P(lcd_status_message, MAX_MESSAGE_LENGTH, fmt, args);
5242 5243
   va_end(args);
5243 5244
   lcd_finishstatus(level > 0);
5244 5245
 }

Loading…
Cancel
Save