@@ -762,15 +762,23 @@ static void json_c4_log(struct ocp_device_capabilities_log_page *log_data)
762762 json_free_object (root );
763763}
764764
765+ /* Array lengths need to be doubled + 2 to handle
766+ * conversion to null terminated strings
767+ */
768+ #define RESERVED_ARRAY_LEN 98 /* (2*48) + 2 */
769+ #define GUID_BUFFER_LEN 34 /* (2*GUID_LEN) + 2 */
770+ /* Add one additional space for the null terminating char */
771+ #define FIFO_ARRAY_LEN 17
772+
765773static void json_c9_log (struct telemetry_str_log_format * log_data , __u8 * log_data_buf ,
766774 int total_log_page_size )
767775{
768776 struct json_object * root = json_create_object ();
769- char res_arr [48 ];
777+ char res_arr [RESERVED_ARRAY_LEN ];
770778 char * res = res_arr ;
771- char guid_buf [GUID_LEN ];
779+ char guid_buf [GUID_BUFFER_LEN ];
772780 char * guid = guid_buf ;
773- char fifo_arr [16 ];
781+ char fifo_arr [FIFO_ARRAY_LEN ];
774782 char * fifo = fifo_arr ;
775783 char buf [128 ];
776784 //calculating the index value for array
@@ -786,31 +794,31 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
786794 struct statistics_id_str_table_entry stat_id_str_table_arr [stat_id_index ];
787795 struct event_id_str_table_entry event_id_str_table_arr [eve_id_index ];
788796 struct vu_event_id_str_table_entry vu_event_id_str_table_arr [vu_eve_index ];
789- __u8 ascii_table_info_arr [ascii_table_index ];
790- char ascii_buf [ascii_table_index ];
797+ __u8 ascii_table_info_arr [( 2 * ascii_table_index ) + 2 ];
798+ char ascii_buf [( 2 * ascii_table_index ) + 2 ];
791799 char * ascii = ascii_buf ;
792800 int j ;
793801
794802 json_object_add_value_int (root , "Log Page Version" ,
795803 le16_to_cpu (log_data -> log_page_version ));
796804
797- memset ((__u8 * )res , 0 , 48 );
805+ memset ((__u8 * )res , 0 , RESERVED_ARRAY_LEN );
798806 for (j = 0 ; j < 15 ; j ++ )
799- res += sprintf (res , "%d " , log_data -> reserved1 [j ]);
800- json_object_add_value_string (root , "Reserved" , res_arr );
807+ res += sprintf (res , "%x " , log_data -> reserved1 [j ]);
808+ json_object_add_value_string (root , "Reserved 1 " , res_arr );
801809
802- memset ((void * )guid , 0 , GUID_LEN );
810+ memset ((void * )guid , 0 , GUID_BUFFER_LEN );
803811 for (j = GUID_LEN - 1 ; j >= 0 ; j -- )
804812 guid += sprintf (guid , "%02x" , log_data -> log_page_guid [j ]);
805813 json_object_add_value_string (root , "Log page GUID" , guid_buf );
806814
807815 json_object_add_value_int (root , "Telemetry String Log Size" , le64_to_cpu (log_data -> sls ));
808816
809817 res = res_arr ;
810- memset ((__u8 * )res , 0 , 48 );
818+ memset ((__u8 * )res , 0 , RESERVED_ARRAY_LEN );
811819 for (j = 0 ; j < 24 ; j ++ )
812- res += sprintf (res , "%d " , log_data -> reserved2 [j ]);
813- json_object_add_value_string (root , "Reserved" , res_arr );
820+ res += sprintf (res , "%x " , log_data -> reserved2 [j ]);
821+ json_object_add_value_string (root , "Reserved 2 " , res_arr );
814822
815823 json_object_add_value_int (root , "Statistics Identifier String Table Start" ,
816824 le64_to_cpu (log_data -> sits ));
@@ -825,106 +833,106 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
825833 json_object_add_value_int (root , "ASCII Table Size" ,
826834 le64_to_cpu (log_data -> asctsz ));
827835
828- memset ((void * )fifo , 0 , 16 );
836+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
829837 for (j = 0 ; j < 16 ; j ++ )
830838 fifo += sprintf (fifo , "%c" , log_data -> fifo1 [j ]);
831839 json_object_add_value_string (root , "FIFO 1 ASCII String" , fifo_arr );
832840
833841 fifo = fifo_arr ;
834- memset ((void * )fifo , 0 , 16 );
842+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
835843 for (j = 0 ; j < 16 ; j ++ )
836844 fifo += sprintf (fifo , "%c" , log_data -> fifo2 [j ]);
837845 json_object_add_value_string (root , "FIFO 2 ASCII String" , fifo_arr );
838846
839847 fifo = fifo_arr ;
840- memset ((void * )fifo , 0 , 16 );
848+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
841849 for (j = 0 ; j < 16 ; j ++ )
842850 fifo += sprintf (fifo , "%c" , log_data -> fifo3 [j ]);
843851 json_object_add_value_string (root , "FIFO 3 ASCII String" , fifo_arr );
844852
845853 fifo = fifo_arr ;
846- memset ((void * )fifo , 0 , 16 );
854+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
847855 for (j = 0 ; j < 16 ; j ++ )
848856 fifo += sprintf (fifo , "%c" , log_data -> fifo4 [j ]);
849857 json_object_add_value_string (root , "FIFO 4 ASCII String" , fifo_arr );
850858
851859 fifo = fifo_arr ;
852- memset ((void * )fifo , 0 , 16 );
860+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
853861 for (j = 0 ; j < 16 ; j ++ )
854862 fifo += sprintf (fifo , "%c" , log_data -> fifo5 [j ]);
855863 json_object_add_value_string (root , "FIFO 5 ASCII String" , fifo_arr );
856864
857865 fifo = fifo_arr ;
858- memset ((void * )fifo , 0 , 16 );
866+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
859867 for (j = 0 ; j < 16 ; j ++ )
860868 fifo += sprintf (fifo , "%c" , log_data -> fifo6 [j ]);
861869 json_object_add_value_string (root , "FIFO 6 ASCII String" , fifo_arr );
862870
863871 fifo = fifo_arr ;
864- memset ((void * )fifo , 0 , 16 );
872+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
865873 for (j = 0 ; j < 16 ; j ++ )
866874 fifo += sprintf (fifo , "%c" , log_data -> fifo7 [j ]);
867875 json_object_add_value_string (root , "FIFO 7 ASCII String" , fifo_arr );
868876
869877 fifo = fifo_arr ;
870- memset ((void * )fifo , 0 , 16 );
878+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
871879 for (j = 0 ; j < 16 ; j ++ )
872880 fifo += sprintf (fifo , "%c" , log_data -> fifo8 [j ]);
873881 json_object_add_value_string (root , "FIFO 8 ASCII String" , fifo_arr );
874882
875883 fifo = fifo_arr ;
876- memset ((void * )fifo , 0 , 16 );
884+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
877885 for (j = 0 ; j < 16 ; j ++ )
878886 fifo += sprintf (fifo , "%c" , log_data -> fifo9 [j ]);
879887 json_object_add_value_string (root , "FIFO 9 ASCII String" , fifo_arr );
880888
881889 fifo = fifo_arr ;
882- memset ((void * )fifo , 0 , 16 );
890+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
883891 for (j = 0 ; j < 16 ; j ++ )
884892 fifo += sprintf (fifo , "%c" , log_data -> fifo10 [j ]);
885893 json_object_add_value_string (root , "FIFO 10 ASCII String" , fifo_arr );
886894
887895 fifo = fifo_arr ;
888- memset ((void * )fifo , 0 , 16 );
896+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
889897 for (j = 0 ; j < 16 ; j ++ )
890898 fifo += sprintf (fifo , "%c" , log_data -> fifo11 [j ]);
891899 json_object_add_value_string (root , "FIFO 11 ASCII String" , fifo_arr );
892900
893901 fifo = fifo_arr ;
894- memset ((void * )fifo , 0 , 16 );
902+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
895903 for (j = 0 ; j < 16 ; j ++ )
896904 fifo += sprintf (fifo , "%c" , log_data -> fifo12 [j ]);
897905 json_object_add_value_string (root , "FIFO 12 ASCII String" , fifo_arr );
898906
899907 fifo = fifo_arr ;
900- memset ((void * )fifo , 0 , 16 );
908+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
901909 for (j = 0 ; j < 16 ; j ++ )
902910 fifo += sprintf (fifo , "%c" , log_data -> fifo13 [j ]);
903911 json_object_add_value_string (root , "FIFO 13 ASCII String" , fifo_arr );
904912
905913 fifo = fifo_arr ;
906- memset ((void * )fifo , 0 , 16 );
914+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
907915 for (j = 0 ; j < 16 ; j ++ )
908916 fifo += sprintf (fifo , "%c" , log_data -> fifo14 [j ]);
909917 json_object_add_value_string (root , "FIFO 14 ASCII String" , fifo_arr );
910918
911919 fifo = fifo_arr ;
912- memset ((void * )fifo , 0 , 16 );
920+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
913921 for (j = 0 ; j < 16 ; j ++ )
914922 fifo += sprintf (fifo , "%c" , log_data -> fifo15 [j ]);
915923 json_object_add_value_string (root , "FIFO 15 ASCII String" , fifo_arr );
916924
917925 fifo = fifo_arr ;
918- memset ((void * )fifo , 0 , 16 );
926+ memset ((void * )fifo , 0 , FIFO_ARRAY_LEN );
919927 for (j = 0 ; j < 16 ; j ++ )
920928 fifo += sprintf (fifo , "%c" , log_data -> fifo16 [j ]);
921929 json_object_add_value_string (root , "FIFO 16 ASCII String" , fifo_arr );
922930
923931 res = res_arr ;
924- memset ((__u8 * )res , 0 , 48 );
932+ memset ((__u8 * )res , 0 , RESERVED_ARRAY_LEN );
925933 for (j = 0 ; j < 48 ; j ++ )
926- res += sprintf (res , "%d " , log_data -> reserved3 [j ]);
927- json_object_add_value_string (root , "Reserved" , res_arr );
934+ res += sprintf (res , "%x " , log_data -> reserved3 [j ]);
935+ json_object_add_value_string (root , "Reserved 3 " , res_arr );
928936
929937 if (log_data -> sitsz != 0 ) {
930938
0 commit comments