Files
kubernetes/pkg/util
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
..
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-14 12:39:48 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-15 18:36:22 -08:00
2016-12-16 17:47:47 +01:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-12-12 13:30:07 -08:00
2016-07-16 13:48:21 -04:00