k3s/pkg/runtime
Kubernetes Submit Queue 36c20d1f5e Merge pull request #38525 from juanvallejo/jvallejo/fix-panic-on-invalid-json-syntax
Automatic merge from submit-queue (batch tested with PRs 38525, 38977)

Prevent json decoder panic on invalid input

Related downstream issue: https://github.com/openshift/origin/issues/12132
```
# Can be replicated on kubectl with:
$ cat panic.json
{
  "kind": "Pod",
  "apiVersion": "v1",
  "metadata": {
    "name": "",
    "labels": {
      "name": ""
    },
    "generateName": "",
    "namespace": "",
    "annotations": []
  },
  "spec": {}
},

$ kubectl create -f panic.json --validate=false
```

**Release note**:
```release-note
release-note-none
```

This patch handles cases where `ioutil.ReadAll` will return a single
character output on an invalid json input, causing the `Decode` method
to panic when it tries to calculate the line number for the syntax
error. The example below would cause a panic due to the trailing comma
at the end:

```
{
  "kind": "Pod",
  "apiVersion": "v1",
  "metadata": {
    "name": "",
    "labels": {
      "name": ""
    },
    "generateName": "",
    "namespace": "",
    "annotations": []
  },
  "spec": {}
},
```

@kubernetes/cli-review @fabianofranz
2016-12-19 13:23:03 -08:00
..
schema autoupdate BUILD files 2016-12-12 13:30:07 -08:00
serializer Merge pull request #38525 from juanvallejo/jvallejo/fix-panic-on-invalid-json-syntax 2016-12-19 13:23:03 -08:00
BUILD autoupdate BUILD files 2016-12-12 13:30:07 -08:00
OWNERS Update OWNERS approvers and reviewers: pkg/runtime 2016-12-12 16:49:23 -08:00
codec.go generated: refactor 2016-11-23 22:30:47 -06:00
codec_check.go generated: refactor 2016-11-23 22:30:47 -06:00
conversion.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
conversion_test.go generated: refactor 2016-11-23 22:30:47 -06:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
embedded.go generated: refactor 2016-11-23 22:30:47 -06:00
embedded_test.go generated: refactor 2016-11-23 22:30:47 -06:00
error.go generated: refactor 2016-11-23 22:30:47 -06:00
extension.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
extension_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
generated.pb.go update generated protobuf 2016-10-13 21:22:59 -07:00
generated.proto refactor: update bazel, codec, and gofmt 2016-12-03 19:10:53 -05:00
helper.go generated: refactor 2016-11-23 22:30:47 -06:00
helper_test.go Switch to use pkg/apis/meta/v1/unstructured and the new interfaces 2016-12-10 18:05:28 -05:00
interfaces.go Move unstructured to its own package under v1 2016-12-10 18:05:24 -05:00
register.go Move unstructured to its own package under v1 2016-12-10 18:05:24 -05:00
scheme.go generated: refactor 2016-11-23 22:30:47 -06:00
scheme_builder.go fix register.go files up + add test import 2016-08-11 17:06:54 -07:00
scheme_test.go generated: refactor 2016-11-23 22:30:47 -06:00
swagger_doc_generator.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
swagger_doc_generator_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
types.go Move unstructured to its own package under v1 2016-12-10 18:05:24 -05:00
types_proto.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
unversioned_test.go refactor: update bazel, codec, and gofmt 2016-12-03 19:10:53 -05:00
zz_generated.deepcopy.go Commit generated files 2016-07-15 10:27:51 -07:00