Procházet zdrojové kódy

Merge remote-tracking branch 'dutchcoders/master'

tags/v1.2.0
Stefan Benten před 3 roky
rodič
revize
614a7fd23d
4 změnil soubory, kde provedl 4 přidání a 129 odebrání
  1. +3
    -13
      .travis.yml
  2. +1
    -1
      README.md
  3. +0
    -33
      fuzzit.sh
  4. +0
    -82
      server/server_fuzz.go

+ 3
- 13
.travis.yml Zobrazit soubor

@@ -9,6 +9,8 @@ services:


go: go:
- 1.13.x - 1.13.x
- 1.14.x
- 1.15.x
- tip - tip


env: env:
@@ -23,18 +25,6 @@ install:
script: script:
- go test ./... - go test ./...


jobs:
include:
- stage: Fuzz regression
go: 1.13.x
dist: bionic
script: ./fuzzit.sh local-regression
- stage: Fuzz
if: branch = master AND type IN (push)
go: 1.13.x
dist: bionic
script: ./fuzzit.sh fuzzing

before_deploy: before_deploy:
- mkdir -p release - mkdir -p release
- "GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags -a -tags netgo -ldflags '-s -w -extldflags -static' -o release/transfersh-$TRAVIS_TAG-linux-amd64" - "GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags -a -tags netgo -ldflags '-s -w -extldflags -static' -o release/transfersh-$TRAVIS_TAG-linux-amd64"
@@ -54,5 +44,5 @@ deploy:
skip_cleanup: true skip_cleanup: true
on: on:
tags: true tags: true
go: 1.13.x
go: 1.15.x
overwrite: true overwrite: true

+ 1
- 1
README.md Zobrazit soubor

@@ -1,4 +1,4 @@
# transfer.sh [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dutchcoders/transfer.sh?utm_source=badge&utm_medium=badge&utm_campaign=&utm_campaign=pr-badge&utm_content=badge) [![Go Report Card](https://goreportcard.com/badge/github.com/dutchcoders/transfer.sh)](https://goreportcard.com/report/github.com/dutchcoders/transfer.sh) [![Docker pulls](https://img.shields.io/docker/pulls/dutchcoders/transfer.sh.svg)](https://hub.docker.com/r/dutchcoders/transfer.sh/) [![Build Status](https://travis-ci.org/dutchcoders/transfer.sh.svg?branch=master)](https://travis-ci.org/dutchcoders/transfer.sh) [![Fuzzit Status](https://app.fuzzit.dev/badge?org_id=transfer.sh)](https://app.fuzzit.dev/orgs/transfer.sh/dashboard)
# transfer.sh [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dutchcoders/transfer.sh?utm_source=badge&utm_medium=badge&utm_campaign=&utm_campaign=pr-badge&utm_content=badge) [![Go Report Card](https://goreportcard.com/badge/github.com/dutchcoders/transfer.sh)](https://goreportcard.com/report/github.com/dutchcoders/transfer.sh) [![Docker pulls](https://img.shields.io/docker/pulls/dutchcoders/transfer.sh.svg)](https://hub.docker.com/r/dutchcoders/transfer.sh/) [![Build Status](https://travis-ci.com/dutchcoders/transfer.sh.svg?branch=master)](https://travis-ci.com/dutchcoders/transfer.sh)


Easy and fast file sharing from the command-line. This code contains the server with everything you need to create your own instance. Easy and fast file sharing from the command-line. This code contains the server with everything you need to create your own instance.




+ 0
- 33
fuzzit.sh Zobrazit soubor

@@ -1,33 +0,0 @@
#!/bin/bash
set -xe

# Validate arguments
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <fuzz-type>"
exit 1
fi

# Configure
NAME=transfersh
ROOT=./server
TYPE=$1

# Setup
export GOFUZZ111MODULE="on"
go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build
go get -d -v -u ./...
if [ ! -f fuzzit ]; then
wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.72/fuzzit_Linux_x86_64
chmod a+x fuzzit
fi

# Fuzz
function fuzz {
FUNC=Fuzz$1
TARGET=$2
DIR=${3:-$ROOT}
go-fuzz-build -libfuzzer -func $FUNC -o fuzzer.a $DIR
clang -fsanitize=fuzzer fuzzer.a -o fuzzer
./fuzzit create job --type $TYPE $NAME/$TARGET fuzzer
}
fuzz LocalStorage local-storage

+ 0
- 82
server/server_fuzz.go Zobrazit soubor

@@ -1,82 +0,0 @@
// +build gofuzz

package server

import (
"bytes"
"io"
"math/rand"
"reflect"
)

const applicationOctetStream = "application/octet-stream"

// FuzzLocalStorage tests the Local Storage.
func FuzzLocalStorage(fuzz []byte) int {
var fuzzLength = uint64(len(fuzz))
if fuzzLength == 0 {
return -1
}

storage, err := NewLocalStorage("/tmp", nil)
if err != nil {
panic("unable to create local storage")
}

token := Encode(10000000 + int64(rand.Intn(1000000000)))
filename := Encode(10000000+int64(rand.Intn(1000000000))) + ".bin"

input := bytes.NewReader(fuzz)
err = storage.Put(token, filename, input, applicationOctetStream, fuzzLength)
if err != nil {
panic("unable to save file")
}

contentLength, err := storage.Head(token, filename)
if err != nil {
panic("not visible through head")
}

if contentLength != fuzzLength {
panic("incorrect content length")
}

output, contentLength, err := storage.Get(token, filename)
if err != nil {
panic("not visible through get")
}

if contentLength != fuzzLength {
panic("incorrect content length")
}

var length uint64
b := make([]byte, len(fuzz))
for {
n, err := output.Read(b)
length += uint64(n)
if err == io.EOF {
break
}
}

if !reflect.DeepEqual(b, fuzz) {
panic("incorrect content body")
}

if length != fuzzLength {
panic("incorrect content length")
}

err = storage.Delete(token, filename)
if err != nil {
panic("unable to delete file")
}

_, err = storage.Head(token, filename)
if !storage.IsNotExist(err) {
panic("file not deleted")
}

return 1
}

Načítá se…
Zrušit
Uložit