• 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
..
json Loading commit data...
protobuf Loading commit data...
recognizer Loading commit data...
streaming Loading commit data...
versioning Loading commit data...
yaml Loading commit data...
BUILD Loading commit data...
codec_factory.go Loading commit data...
codec_test.go Loading commit data...
negotiated_codec.go Loading commit data...
protobuf_extension.go Loading commit data...