#include #include #include #include #include "debug2.h" #include "strsafe.h" // Security-Code 2002.3.6 // // Functions for outputting debug messages // #ifdef DEBUG2_FILE #if (DBG) VOID DbgFPrint(LPCSTR pstrFormat, ...) { FILE *stream; va_list ap; char wbuff[512]; va_start(ap, pstrFormat); if ((stream = fopen( DEBU2_FNAME, "a" )) == NULL) { return; } vfprintf(stream, pstrFormat, ap); fclose(stream); va_end(ap); } #ifdef DEBUG2_DUMP_USE VOID DbgFDump(LPBYTE src, UINT src_size) { FILE *stream; LPBYTE cur_ptr; UINT cnt01; UINT cnt02; UINT line_max; UINT line_rem; BYTE d_dump_buff[256]; if ((stream = fopen( DEBU2_FNAME, "a" )) == NULL) { return; } cur_ptr = src; line_max = src_size / 16; line_rem = src_size % 16; for (cnt01=0; cnt01 < line_max; cnt01++) { memset(d_dump_buff, 0x00, sizeof(d_dump_buff)); for (cnt02=0; cnt02 < 16; cnt02++) { // Replacement of strsafe-api 2002.3.6 >>> // sprintf(d_dump_buff+(3*cnt02), " %02X", *(cur_ptr + cnt02)); if (S_OK != StringCbPrintfExA(d_dump_buff+(3*cnt02), sizeof(d_dump_buff)-(3*cnt02), &pDestEnd, &szRemLen, STRSAFE_IGNORE_NULLS | STRSAFE_NULL_ON_FAILURE, " %02X", *(cur_ptr + cnt02))) { fclose(stream); return; } // Replacement of strsafe-api 2002.3.6 >>> + } fprintf(stream, d_dump_buff); fprintf(stream, "\n"); cur_ptr += 16; } if (line_rem > 0) { memset(d_dump_buff, 0x00, sizeof(d_dump_buff)); for (cnt02=0; cnt02 < 16 && cnt02 < line_rem; cnt02++) { // Replacement of strsafe-api 2002.3.6 >>> // sprintf(d_dump_buff+(3*cnt02), " %02X ", *(cur_ptr + cnt02)); if (S_OK != StringCbPrintfExA(d_dump_buff+(3*cnt02), sizeof(d_dump_buff)-(3*cnt02), &pDestEnd, &szRemLen, STRSAFE_IGNORE_NULLS | STRSAFE_NULL_ON_FAILURE, " %02X", *(cur_ptr + cnt02))) { fclose(stream); return; } // Replacement of strsafe-api 2002.3.6 <<< } fprintf(stream, d_dump_buff); fprintf(stream, "\n"); } fclose(stream); } #else // DEBUG2_DUMP_USE VOID DbgFDump(LPBYTE src, UINT src_size) { ; } #endif // DEBUG2_DUMP_USE #else // DBG VOID DbgFPrint(LPCSTR pstrFormat, ...) { ; } VOID DbgFDump(LPBYTE src, UINT src_size) { ; } #endif // DBG #endif // DEBUG2_FILE