Skip to content

Commit eb9899a

Browse files
committed
Tar fix snprintf usage
1 parent 143e719 commit eb9899a

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

formats/tar.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)