소스 검색

Fixes an PSTR overflow with print_xyz()

João Brázio 9 년 전
부모
커밋
ffbb31b235
1개의 변경된 파일12개의 추가작업 그리고 6개의 파일을 삭제
  1. 12
    6
      Marlin/Marlin_main.cpp

+ 12
- 6
Marlin/Marlin_main.cpp 파일 보기

580
     SERIAL_ECHOPAIR(", ", y);
580
     SERIAL_ECHOPAIR(", ", y);
581
     SERIAL_ECHOPAIR(", ", z);
581
     SERIAL_ECHOPAIR(", ", z);
582
     SERIAL_ECHOPGM(")");
582
     SERIAL_ECHOPGM(")");
583
-    serialprintPGM(suffix);
583
+
584
+    if (suffix) serialprintPGM(suffix);
585
+    else SERIAL_EOL;
584
   }
586
   }
585
-  void print_xyz(const char* prefix,const char* suffix, const float xyz[]) {
587
+
588
+  void print_xyz(const char* prefix, const char* suffix, const float xyz[]) {
586
     print_xyz(prefix, suffix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]);
589
     print_xyz(prefix, suffix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]);
587
   }
590
   }
591
+
588
   #if ENABLED(AUTO_BED_LEVELING_FEATURE)
592
   #if ENABLED(AUTO_BED_LEVELING_FEATURE)
589
-    void print_xyz(const char* prefix,const char* suffix, const vector_3 &xyz) {
593
+    void print_xyz(const char* prefix, const char* suffix, const vector_3 &xyz) {
590
       print_xyz(prefix, suffix, xyz.x, xyz.y, xyz.z);
594
       print_xyz(prefix, suffix, xyz.x, xyz.y, xyz.z);
591
     }
595
     }
592
   #endif
596
   #endif
593
-  #define DEBUG_POS(SUFFIX,VAR) do{ print_xyz(PSTR(STRINGIFY(VAR) "="), PSTR(" : " SUFFIX "\n"), VAR); }while(0)
597
+
598
+  #define DEBUG_POS(SUFFIX,VAR) do { \
599
+    print_xyz(PSTR(STRINGIFY(VAR) "="), PSTR(" : " SUFFIX "\n"), VAR); } while(0)
594
 #endif
600
 #endif
595
 
601
 
596
 #if ENABLED(DELTA) || ENABLED(SCARA)
602
 #if ENABLED(DELTA) || ENABLED(SCARA)
1657
   float old_feedrate = feedrate;
1663
   float old_feedrate = feedrate;
1658
 
1664
 
1659
   #if ENABLED(DEBUG_LEVELING_FEATURE)
1665
   #if ENABLED(DEBUG_LEVELING_FEATURE)
1660
-    if (DEBUGGING(LEVELING)) print_xyz(PSTR("do_blocking_move_to"), "", x, y, z);
1666
+    if (DEBUGGING(LEVELING)) print_xyz(PSTR("do_blocking_move_to"), NULL, x, y, z);
1661
   #endif
1667
   #endif
1662
 
1668
 
1663
   #if ENABLED(DELTA)
1669
   #if ENABLED(DELTA)
6626
             delayed_move_time = 0;
6632
             delayed_move_time = 0;
6627
             break;
6633
             break;
6628
         }
6634
         }
6629
- 
6635
+
6630
         #if ENABLED(DEBUG_LEVELING_FEATURE)
6636
         #if ENABLED(DEBUG_LEVELING_FEATURE)
6631
           if (DEBUGGING(LEVELING)) {
6637
           if (DEBUGGING(LEVELING)) {
6632
             SERIAL_ECHOPAIR("Active extruder parked: ", active_extruder_parked ? "yes" : "no");
6638
             SERIAL_ECHOPAIR("Active extruder parked: ", active_extruder_parked ? "yes" : "no");

Loading…
취소
저장