@cryptotaxi247 / kubo / commits / 2f964d40e

forbid bad compression levels

(instead of allowing -1 and treating it as "use default") License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Jan 20, 2018 at 00:55 UTC 2f964d40e8519dd7bb6447eb7e7084da0be9592c
1 file changed +3 -3
core/commands/get.go
+3 -3
@@ -46,7 +46,7 @@ may also specify the level of compression by specifying '-l=<1-9>'.
46 cmdkit.StringOption("output", "o", "The path where the output should be stored."),
47 cmdkit.BoolOption("archive", "a", "Output a TAR archive."),
48 cmdkit.BoolOption("compress", "C", "Compress the output with GZIP compression."),
49 - cmdkit.IntOption("compression-level", "l", "The level of compression (1-9).").WithDefault(-1),
49 + cmdkit.IntOption("compression-level", "l", "The level of compression (1-9)."),
50 },
51 PreRun: func(req *cmds.Request, env cmds.Environment) error {
52 _, err := getCompressOptions(req)
@@ -257,11 +257,11 @@ func (gw *getWriter) writeExtracted(r io.Reader, fpath string) error {
257
258 func getCompressOptions(req *cmds.Request) (int, error) {
259 cmprs, _ := req.Options["compress"].(bool)
260 - cmplvl, _ := req.Options["compression-level"].(int)
260 + cmplvl, cmplvlFound := req.Options["compression-level"].(int)
261 switch {
262 case !cmprs:
263 return gzip.NoCompression, nil
264 - case cmprs && cmplvl == -1:
264 + case cmprs && !cmplvlFound:
265 return gzip.DefaultCompression, nil
266 case cmprs && (cmplvl < 1 || cmplvl > 9):
267 return gzip.NoCompression, ErrInvalidCompressionLevel