Skip to content

Commit d1cccfc

Browse files
committed
chore: update deps and fix gosec linter warnings
Signed-off-by: Christian Stewart <christian@aperture.us>
1 parent 8b7a2e8 commit d1cccfc

File tree

8 files changed

+457
-417
lines changed

8 files changed

+457
-417
lines changed

bit_reader.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Returns amount of unread bytes the bit reader still has buffered from the
104104
BrotliInput, including whole bytes in br->val_.
105105
*/
106106
func getRemainingBytes(br *bitReader) uint {
107-
return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3))
107+
return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3)) //nolint:gosec
108108
}
109109

110110
/*
@@ -174,7 +174,7 @@ Like BrotliGetBits, but does not mask the result.
174174
*/
175175
func get16BitsUnmasked(br *bitReader) uint32 {
176176
fillBitWindow(br, 16)
177-
return uint32(getBitsUnmasked(br))
177+
return uint32(getBitsUnmasked(br)) //nolint:gosec
178178
}
179179

180180
/*
@@ -184,7 +184,8 @@ Returns the specified number of bits from |br| without advancing bit
184184
*/
185185
func getBits(br *bitReader, n_bits uint32) uint32 {
186186
fillBitWindow(br, n_bits)
187-
return uint32(getBitsUnmasked(br)) & bitMask(n_bits)
187+
bits := uint32(getBitsUnmasked(br)) //nolint:gosec
188+
return bits & bitMask(n_bits)
188189
}
189190

190191
/*
@@ -199,7 +200,7 @@ func safeGetBits(br *bitReader, n_bits uint32, val *uint32) bool {
199200
}
200201
}
201202

202-
*val = uint32(getBitsUnmasked(br)) & bitMask(n_bits)
203+
*val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) //nolint:gosec
203204
return true
204205
}
205206

@@ -227,7 +228,7 @@ Reads the specified number of bits from |br| and advances the bit pos.
227228
Precondition: accumulator MUST contain at least |n_bits|.
228229
*/
229230
func takeBits(br *bitReader, n_bits uint32, val *uint32) {
230-
*val = uint32(getBitsUnmasked(br)) & bitMask(n_bits)
231+
*val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) //nolint:gosec
231232
dropBits(br, n_bits)
232233
}
233234

decode.go

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -241,17 +241,17 @@ func decodeMetaBlockLength(s *Reader, br *bitReader) int {
241241
case stateMetablockHeaderSize:
242242
i = s.loop_counter
243243

244-
for ; i < int(s.size_nibbles); i++ {
244+
for ; i < int(s.size_nibbles); i++ { //nolint:gosec
245245
if !safeReadBits(br, 4, &bits) {
246246
s.loop_counter = i
247247
return decoderNeedsMoreInput
248248
}
249249

250-
if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 {
250+
if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 { //nolint:gosec
251251
return decoderErrorFormatExuberantNibble
252252
}
253253

254-
s.meta_block_remaining_len |= int(bits << uint(i*4))
254+
s.meta_block_remaining_len |= int(bits << uint(i*4)) //nolint:gosec
255255
}
256256

257257
s.substate_metablock_header = stateMetablockHeaderUncompressed
@@ -306,17 +306,17 @@ func decodeMetaBlockLength(s *Reader, br *bitReader) int {
306306
case stateMetablockHeaderMetadata:
307307
i = s.loop_counter
308308

309-
for ; i < int(s.size_nibbles); i++ {
309+
for ; i < int(s.size_nibbles); i++ { //nolint:gosec
310310
if !safeReadBits(br, 8, &bits) {
311311
s.loop_counter = i
312312
return decoderNeedsMoreInput
313313
}
314314

315-
if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 {
315+
if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 { //nolint:gosec
316316
return decoderErrorFormatExuberantMetaNibble
317317
}
318318

319-
s.meta_block_remaining_len |= int(bits << uint(i*8))
319+
s.meta_block_remaining_len |= int(bits << uint(i*8)) //nolint:gosec
320320
}
321321

322322
s.meta_block_remaining_len++
@@ -374,7 +374,7 @@ func safeDecodeSymbol(table []huffmanCode, br *bitReader, result *uint32) bool {
374374
return false /* No valid bits at all. */
375375
}
376376

377-
val = uint32(getBitsUnmasked(br))
377+
val = uint32(getBitsUnmasked(br)) //nolint:gosec
378378
table = table[val&huffmanTableMask:]
379379
if table[0].bits <= huffmanTableBits {
380380
if uint32(table[0].bits) <= available_bits {
@@ -484,7 +484,7 @@ func readSimpleHuffmanSymbols(alphabet_size uint32, max_symbol uint32, s *Reader
484484
return decoderErrorFormatSimpleHuffmanAlphabet
485485
}
486486

487-
s.symbols_lists_array[i] = uint16(v)
487+
s.symbols_lists_array[i] = uint16(v) //nolint:gosec
488488
i++
489489
}
490490

@@ -512,7 +512,7 @@ Process single decoded symbol code length:
512512
func processSingleCodeLength(code_len uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) {
513513
*repeat = 0
514514
if code_len != 0 { /* code_len == 1..15 */
515-
symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol))
515+
symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol)) //nolint:gosec
516516
next_symbol[code_len] = int(*symbol)
517517
*prev_code_len = code_len
518518
*space -= 32768 >> code_len
@@ -567,17 +567,17 @@ func processRepeatedCodeLength(code_len uint32, repeat_delta uint32, alphabet_si
567567
var last uint = uint(*symbol + repeat_delta)
568568
var next int = next_symbol[*repeat_code_len]
569569
for {
570-
symbolListPut(symbol_lists, next, uint16(*symbol))
570+
symbolListPut(symbol_lists, next, uint16(*symbol)) //nolint:gosec
571571
next = int(*symbol)
572572
(*symbol)++
573-
if (*symbol) == uint32(last) {
573+
if (*symbol) == uint32(last) { //nolint:gosec
574574
break
575575
}
576576
}
577577

578578
next_symbol[*repeat_code_len] = next
579579
*space -= repeat_delta << (15 - *repeat_code_len)
580-
code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta)
580+
code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta) //nolint:gosec
581581
} else {
582582
*symbol += repeat_delta
583583
}
@@ -623,7 +623,7 @@ func readSymbolCodeLengths(alphabet_size uint32, s *Reader) int {
623623
} else {
624624
extra_bits = 3
625625
}
626-
var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits)
626+
var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits) //nolint:gosec
627627
dropBits(br, extra_bits)
628628
processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol)
629629
}
@@ -648,7 +648,7 @@ func safeReadSymbolCodeLengths(alphabet_size uint32, s *Reader) int {
648648
get_byte = false
649649
available_bits = getAvailableBits(br)
650650
if available_bits != 0 {
651-
bits = uint32(getBitsUnmasked(br))
651+
bits = uint32(getBitsUnmasked(br)) //nolint:gosec
652652
}
653653

654654
p = p[bits&bitMask(huffmanMaxCodeLengthCodeLength):]
@@ -694,7 +694,7 @@ func readCodeLengthCodeLengths(s *Reader) int {
694694
if !safeGetBits(br, 4, &ix) {
695695
var available_bits uint32 = getAvailableBits(br)
696696
if available_bits != 0 {
697-
ix = uint32(getBitsUnmasked(br) & 0xF)
697+
ix = uint32(getBitsUnmasked(br) & 0xF) //nolint:gosec
698698
} else {
699699
ix = 0
700700
}
@@ -938,7 +938,7 @@ func inverseMoveToFrontTransform(v []byte, v_len uint32, state *Reader) {
938938
var mtf_1 byte
939939

940940
/* Transform the input. */
941-
for i = 0; uint32(i) < v_len; i++ {
941+
for i = 0; uint32(i) < v_len; i++ { //nolint:gosec
942942
var index int = int(v[i])
943943
var value byte = mtf[index]
944944
v[i] = value
@@ -1181,7 +1181,7 @@ func detectTrivialLiteralBlockTypes(s *Reader) {
11811181
for i = 0; i < 8; i++ {
11821182
s.trivial_literal_contexts[i] = 0
11831183
}
1184-
for i = 0; uint32(i) < s.num_block_types[0]; i++ {
1184+
for i = 0; uint32(i) < s.num_block_types[0]; i++ { //nolint:gosec
11851185
var offset uint = i << literalContextBits
11861186
var error uint = 0
11871187
var sample uint = uint(s.context_map[offset])
@@ -1207,7 +1207,7 @@ func prepareLiteralDecoding(s *Reader) {
12071207
var context_offset uint32 = block_type << literalContextBits
12081208
s.context_map_slice = s.context_map[context_offset:]
12091209
trivial = uint(s.trivial_literal_contexts[block_type>>5])
1210-
s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1)
1210+
s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1) //nolint:gosec
12111211
s.literal_htree = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[0]])
12121212
context_mode = s.context_modes[block_type] & 3
12131213
s.context_lookup = getContextLUT(int(context_mode))
@@ -1283,11 +1283,11 @@ func safeDecodeDistanceBlockSwitch(s *Reader) bool {
12831283
func unwrittenBytes(s *Reader, wrap bool) uint {
12841284
var pos uint
12851285
if wrap && s.pos > s.ringbuffer_size {
1286-
pos = uint(s.ringbuffer_size)
1286+
pos = uint(s.ringbuffer_size) //nolint:gosec
12871287
} else {
1288-
pos = uint(s.pos)
1288+
pos = uint(s.pos) //nolint:gosec
12891289
}
1290-
var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos
1290+
var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos //nolint:gosec
12911291
return partial_pos_rb - s.partial_pos_out
12921292
}
12931293

@@ -1298,7 +1298,7 @@ Dumps output.
12981298
and either ring-buffer is as big as window size, or |force| is true.
12991299
*/
13001300
func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out *uint, force bool) int {
1301-
start := s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):]
1301+
start := s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):] //nolint:gosec
13021302
var to_write uint = unwrittenBytes(s, true)
13031303
var num_written uint = *available_out
13041304
if num_written > to_write {
@@ -1336,7 +1336,7 @@ func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out
13361336
if s.ringbuffer_size == 1<<s.window_bits && s.pos >= s.ringbuffer_size {
13371337
s.pos -= s.ringbuffer_size
13381338
s.rb_roundtrips++
1339-
if uint(s.pos) != 0 {
1339+
if uint(s.pos) != 0 { //nolint:gosec
13401340
s.should_wrap_ringbuffer = 1
13411341
} else {
13421342
s.should_wrap_ringbuffer = 0
@@ -1348,7 +1348,7 @@ func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out
13481348

13491349
func wrapRingBuffer(s *Reader) {
13501350
if s.should_wrap_ringbuffer != 0 {
1351-
copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)])
1351+
copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)]) //nolint:gosec
13521352
s.should_wrap_ringbuffer = 0
13531353
}
13541354
}
@@ -1377,7 +1377,7 @@ func ensureRingBuffer(s *Reader) bool {
13771377
s.ringbuffer[s.new_ringbuffer_size-1] = 0
13781378

13791379
if old_ringbuffer != nil {
1380-
copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)])
1380+
copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)]) //nolint:gosec
13811381
}
13821382

13831383
s.ringbuffer_size = s.new_ringbuffer_size
@@ -1398,7 +1398,7 @@ func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_
13981398
switch s.substate_uncompressed {
13991399
case stateUncompressedNone:
14001400
{
1401-
var nbytes int = int(getRemainingBytes(&s.br))
1401+
var nbytes int = int(getRemainingBytes(&s.br)) //nolint:gosec
14021402
if nbytes > s.meta_block_remaining_len {
14031403
nbytes = s.meta_block_remaining_len
14041404
}
@@ -1408,7 +1408,7 @@ func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_
14081408
}
14091409

14101410
/* Copy remaining bytes from s->br.buf_ to ring-buffer. */
1411-
copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes))
1411+
copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes)) //nolint:gosec
14121412

14131413
s.pos += nbytes
14141414
s.meta_block_remaining_len -= nbytes
@@ -1526,15 +1526,15 @@ func takeDistanceFromRingBuffer(s *Reader) {
15261526
var distance_code int = s.distance_code << 1
15271527
const kDistanceShortCodeIndexOffset uint32 = 0xAAAFFF1B
15281528
const kDistanceShortCodeValueOffset uint32 = 0xFA5FA500
1529-
var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3
1529+
var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3 //nolint:gosec
15301530
/* kDistanceShortCodeIndexOffset has 2-bit values from LSB:
15311531
3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */
15321532

15331533
/* kDistanceShortCodeValueOffset has 2-bit values from LSB:
15341534
-0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */
15351535
s.distance_code = s.dist_rb[v]
15361536

1537-
v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3
1537+
v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3 //nolint:gosec
15381538
if distance_code&0x3 != 0 {
15391539
s.distance_code += v
15401540
} else {
@@ -1590,15 +1590,15 @@ func readDistanceInternal(safe int, s *Reader, br *bitReader) bool {
15901590
var postfix int
15911591
var offset int
15921592
if safe == 0 && (s.distance_postfix_bits == 0) {
1593-
nbits = (uint32(distval) >> 1) + 1
1593+
nbits = (uint32(distval) >> 1) + 1 //nolint:gosec
15941594
offset = ((2 + (distval & 1)) << nbits) - 4
15951595
s.distance_code = int(s.num_direct_distance_codes) + offset + int(readBits(br, nbits))
15961596
} else {
15971597
/* This branch also works well when s->distance_postfix_bits == 0. */
15981598
var bits uint32
15991599
postfix = distval & s.distance_postfix_mask
16001600
distval >>= s.distance_postfix_bits
1601-
nbits = (uint32(distval) >> 1) + 1
1601+
nbits = (uint32(distval) >> 1) + 1 //nolint:gosec
16021602
if safe != 0 {
16031603
if !safeReadBitsMaybeZero(br, nbits, &bits) {
16041604
s.distance_code = -1 /* Restore precondition. */
@@ -1997,7 +1997,7 @@ CommandPostDecodeLiterals:
19971997
pos += i
19981998
if i > 16 {
19991999
if i > 32 {
2000-
copy(copy_dst[16:], copy_src[16:][:uint(i-16)])
2000+
copy(copy_dst[16:], copy_src[16:][:uint(i-16)]) //nolint:gosec
20012001
} else {
20022002
/* This branch covers about 45% cases.
20032003
Fixed size short copy allows more compiler optimizations. */
@@ -2419,10 +2419,10 @@ func decoderDecompressStream(s *Reader, available_in *uint, next_in *[]byte, ava
24192419
var num_distance_codes uint32
24202420
var max_distance_symbol uint32
24212421
if s.large_window {
2422-
num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), largeMaxDistanceBits))
2422+
num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), largeMaxDistanceBits)) //nolint:gosec
24232423
max_distance_symbol = maxDistanceSymbol(num_direct_codes, s.distance_postfix_bits)
24242424
} else {
2425-
num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), maxDistanceBits))
2425+
num_distance_codes = uint32(distanceAlphabetSize(uint(s.distance_postfix_bits), uint(num_direct_codes), maxDistanceBits)) //nolint:gosec
24262426
max_distance_symbol = num_distance_codes
24272427
}
24282428
var allocation_success bool = true

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module github.com/aperturerobotics/go-brotli-decoder
22

3-
go 1.22
3+
go 1.24

0 commit comments

Comments
 (0)