• Kubernetes Submit Queue's avatar
    Merge pull request #38525 from juanvallejo/jvallejo/fix-panic-on-invalid-json-syntax · 36c20d1f
    Kubernetes Submit Queue authored
    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
    36c20d1f
Name
Last commit
Last update
..
BUILD Loading commit data...
json.go Loading commit data...
json_test.go Loading commit data...
meta.go Loading commit data...
meta_test.go Loading commit data...