@@ -71,11 +71,10 @@ size_t Tar::Leanify(size_t size_leanified /*= 0*/) {
7171 size_t new_size = LeanifyFile (p_read, original_size, size_leanified, filename);
7272 if (new_size < original_size) {
7373 // write new size
74- snprintf (reinterpret_cast <char *>(p_write) + 124 , 11 , " %011o" , (unsigned int )new_size);
74+ snprintf (reinterpret_cast <char *>(p_write) + 124 , 12 , " %011o" , (unsigned int )new_size);
7575
7676 // update checksum
77- snprintf (reinterpret_cast <char *>(p_write) + 148 , 6 , " %06o" , CalcChecksum (p_write));
78- p_write[155 ] = ' ' ;
77+ snprintf (reinterpret_cast <char *>(p_write) + 148 , 8 , " %07o" , CalcChecksum (p_write));
7978
8079 // align to 512
8180 size_t new_size_aligned = RoundUp (new_size, 512 );
@@ -87,8 +86,7 @@ size_t Tar::Leanify(size_t size_leanified /*= 0*/) {
8786 size_leanified += size_aligned - new_size_aligned;
8887 } else {
8988 // update checksum
90- snprintf (reinterpret_cast <char *>(p_write) + 148 , 6 , " %06o" , CalcChecksum (p_write));
91- p_write[155 ] = ' ' ;
89+ snprintf (reinterpret_cast <char *>(p_write) + 148 , 8 , " %07o" , CalcChecksum (p_write));
9290
9391 // make sure the rest space is all 0
9492 memset (p_write + new_size + 512 , 0 , size_aligned - new_size);
0 commit comments