Skip to content

Commit

Permalink
build: fix new gosec linter
Browse files Browse the repository at this point in the history
  • Loading branch information
gbotrel committed Aug 27, 2024
1 parent c1a1c0b commit fe7f39d
Show file tree
Hide file tree
Showing 11 changed files with 32 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.54
version: v1.60
args: -v --timeout=5m
skip-pkg-cache: true

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.54
version: v1.60
args: -v --timeout=5m
skip-pkg-cache: true

Expand Down
2 changes: 1 addition & 1 deletion ecc/bls12-377/fr/sis/sis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ func (r *RSis) Hash(v []fr.Element) ([]fr.Element, error) {
}
sum := r.Sum(nil)
var rlen [4]byte
binary.BigEndian.PutUint32(rlen[:], uint32(len(sum)/fr.Bytes))
binary.BigEndian.PutUint32(rlen[:], uint32(len(sum)/fr.Bytes)) // #nosec G115 not overflow territory here
reader := io.MultiReader(bytes.NewReader(rlen[:]), bytes.NewReader(sum))
var result fr.Vector
_, err := result.ReadFrom(reader)
Expand Down
2 changes: 1 addition & 1 deletion ecc/bn254/fr/sis/sis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ func (r *RSis) Hash(v []fr.Element) ([]fr.Element, error) {
}
sum := r.Sum(nil)
var rlen [4]byte
binary.BigEndian.PutUint32(rlen[:], uint32(len(sum)/fr.Bytes))
binary.BigEndian.PutUint32(rlen[:], uint32(len(sum)/fr.Bytes)) // #nosec G115 not overflow territory here
reader := io.MultiReader(bytes.NewReader(rlen[:]), bytes.NewReader(sum))
var result fr.Vector
_, err := result.ReadFrom(reader)
Expand Down
5 changes: 3 additions & 2 deletions ecc/bn254/fr/tensor-commitment/commitment.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ func NewTCParams(codeRate, NbColumns, NbRows int, makeHash func() hash.Hash) (*T
res.Domains[1] = fft.NewDomain(uint64(codeRate * NbColumns))

// size of the matrix
res.NbColumns = int(res.Domains[0].Cardinality)
res.NbColumns = int(res.Domains[0].Cardinality) // #nosec G115 not overflow territory here
res.NbRows = NbRows

// rate
Expand Down Expand Up @@ -285,7 +285,8 @@ func (tc *TensorCommitment) Commit() (Digest, error) {
// now we hash each columns of _p
res := make([][]byte, tc.params.Domains[1].Cardinality)

parallel.Execute(int(tc.params.Domains[1].Cardinality), func(start, stop int) {
cardinality := int(tc.params.Domains[1].Cardinality) // #nosec G115 not overflow territory here
parallel.Execute(cardinality, func(start, stop int) {
hasher := tc.params.MakeHash()
for i := start; i < stop; i++ {
hasher.Reset()
Expand Down
3 changes: 2 additions & 1 deletion ecc/stark-curve/hash_to_g1.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ func MapToCurve1(u *fp.Element) G1Affine {
signsNotEqual := g1Sgn0(u) ^ g1Sgn0(&y) // 34. e3 = sgn0(u) == sgn0(y)

tv1.Neg(&y)
y.Select(int(signsNotEqual), &y, &tv1) // 35. y = CMOV(-y, y, e3) # Select correct sign of y
// 35. y = CMOV(-y, y, e3) # Select correct sign of y
y.Select(int(signsNotEqual), &y, &tv1) // #nosec G115 not overflow territory here
return G1Affine{x, y}
}

Expand Down
12 changes: 6 additions & 6 deletions ecc/stark-curve/marshal.go
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ func (enc *Encoder) encode(v interface{}) (err error) {
return
case []fr.Element:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand All @@ -347,7 +347,7 @@ func (enc *Encoder) encode(v interface{}) (err error) {
return nil
case []fp.Element:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand All @@ -365,7 +365,7 @@ func (enc *Encoder) encode(v interface{}) (err error) {

case []G1Affine:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand Down Expand Up @@ -420,7 +420,7 @@ func (enc *Encoder) encodeRaw(v interface{}) (err error) {
return
case []fr.Element:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand All @@ -437,7 +437,7 @@ func (enc *Encoder) encodeRaw(v interface{}) (err error) {
return nil
case []fp.Element:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand All @@ -455,7 +455,7 @@ func (enc *Encoder) encodeRaw(v interface{}) (err error) {

case []G1Affine:
// write slice length
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t)))
err = binary.Write(enc.w, binary.BigEndian, uint32(len(t))) // #nosec G115 not overflow territory here
if err != nil {
return
}
Expand Down
2 changes: 1 addition & 1 deletion field/generator/config/field_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ func (f *FieldConfig) WriteElement(element Element) string {
var subElementNames string
if length > 1 {
builder.WriteString("\n")
subElementNames = CoordNameForExtensionDegree(uint8(length))
subElementNames = CoordNameForExtensionDegree(uint8(length)) // #nosec G115 not overflow territory here
}
for i, e := range element {
if length > 1 {
Expand Down
9 changes: 6 additions & 3 deletions field/hash/hashutils.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func ExpandMsgXmd(msg, dst []byte, lenInBytes int) ([]byte, error) {
if len(dst) > 255 {
return nil, errors.New("invalid domain size (>255 bytes)")
}
sizeDomain := uint8(len(dst))
sizeDomain := uint8(len(dst)) // #nosec G115 not overflow territory here, checked above

// Z_pad = I2OSP(0, r_in_bytes)
// l_i_b_str = I2OSP(len_in_bytes, 2)
Expand All @@ -31,7 +31,9 @@ func ExpandMsgXmd(msg, dst []byte, lenInBytes int) ([]byte, error) {
if _, err := h.Write(msg); err != nil {
return nil, err
}
if _, err := h.Write([]byte{uint8(lenInBytes >> 8), uint8(lenInBytes), uint8(0)}); err != nil {
s := uint8(lenInBytes >> 8) // #nosec G115 not overflow territory here
b := uint8(lenInBytes) // #nosec G115 not overflow territory here
if _, err := h.Write([]byte{s, b, 0}); err != nil {
return nil, err
}
if _, err := h.Write(dst); err != nil {
Expand Down Expand Up @@ -71,7 +73,8 @@ func ExpandMsgXmd(msg, dst []byte, lenInBytes int) ([]byte, error) {
if _, err := h.Write(strxor); err != nil {
return nil, err
}
if _, err := h.Write([]byte{uint8(i)}); err != nil {
bi := uint8(i) // #nosec G115 not overflow territory here
if _, err := h.Write([]byte{bi}); err != nil {
return nil, err
}
if _, err := h.Write(dst); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion internal/generator/config/hash_to_curve.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func (parameters *HashSuiteSvdw) GetInfo(baseField *field.FieldConfig, g *Point,
func (suite *HashSuiteSswu) GetInfo(baseField *field.FieldConfig, g *Point, name string) HashSuiteInfo {

f := field.NewTower(baseField, g.CoordExtDegree, g.CoordExtRoot)
fieldSizeMod256 := uint8(f.Size.Bits()[0])
fieldSizeMod256 := uint8(f.Size.Bits()[0]) // #nosec G115 false positive

Z := toBigIntSlice(suite.Z)
var c []field.Element
Expand Down
17 changes: 9 additions & 8 deletions utils/unsafe/dump_slice.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
// (e.g. 32 vs 64 bit, big endian vs little endian).
func WriteSlice[S ~[]E, E any](w io.Writer, s S) error {
var e E
size := int(unsafe.Sizeof(e))
size := int(unsafe.Sizeof(e)) // #nosec G115 not overflow territory here
if err := binary.Write(w, binary.LittleEndian, uint64(len(s))); err != nil {
return err
}
Expand Down Expand Up @@ -43,9 +43,10 @@ func ReadSlice[S ~[]E, E any](r io.Reader, maxElements ...int) (s S, read int, e
length := binary.LittleEndian.Uint64(buf[:])

var e E
size := int(unsafe.Sizeof(e))
size := int(unsafe.Sizeof(e)) // #nosec G115 not overflow territory here
limit := length
if len(maxElements) == 1 && maxElements[0] > 0 && int(length) > maxElements[0] {
iLength := int(length) // #nosec G115 safe to ignore
if len(maxElements) == 1 && maxElements[0] > 0 && iLength > maxElements[0] {
limit = uint64(maxElements[0])
}

Expand All @@ -57,16 +58,16 @@ func ReadSlice[S ~[]E, E any](r io.Reader, maxElements ...int) (s S, read int, e

// directly read the bytes from reader into the target memory area
// (slice data)
data := unsafe.Slice((*byte)(unsafe.Pointer(&toReturn[0])), size*int(limit))
data := unsafe.Slice((*byte)(unsafe.Pointer(&toReturn[0])), size*int(limit)) // #nosec G115 safe to ignore
if _, err := io.ReadFull(r, data); err != nil {
return nil, read, err
}

read += size * int(limit)
read += size * int(limit) // #nosec G115 safe to ignore

// advance the reader if we had more elements than we wanted
if length > limit {
advance := int(length-limit) * size
advance := int(length-limit) * size // #nosec G115 not overflow territory here
if _, err := io.CopyN(io.Discard, r, int64(advance)); err != nil {
return nil, read, err
}
Expand All @@ -82,7 +83,7 @@ const marker uint64 = 0xdeadbeef
// This is used to ensure that the dump was written on the same architecture.
func WriteMarker(w io.Writer) error {
marker := marker
_, err := w.Write(unsafe.Slice((*byte)(unsafe.Pointer(&marker)), 8))
_, err := w.Write(unsafe.Slice((*byte)(unsafe.Pointer(&marker)), 8)) // #nosec G115 unsafe, but we know it.
return err
}

Expand All @@ -94,7 +95,7 @@ func ReadMarker(r io.Reader) error {
return err
}
marker := marker
d := unsafe.Slice((*byte)(unsafe.Pointer(&marker)), 8)
d := unsafe.Slice((*byte)(unsafe.Pointer(&marker)), 8) // #nosec G115 unsafe, but we know it.
if !bytes.Equal(d, buf[:]) {
return errors.New("marker mismatch: dump was not written on the same architecture")
}
Expand Down

0 comments on commit fe7f39d

Please sign in to comment.