summaryrefslogtreecommitdiff
path: root/libpod/pod_ffjson.go
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2018-03-02 13:52:52 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-03-02 19:20:26 +0000
commit11143676fa0d70357cd65127cee53d98afe21a47 (patch)
treee4df2a76b08dd9e7b9012d2a72bce90c46f69309 /libpod/pod_ffjson.go
parent5518cd2194be73577d95e746fd8f3652169dd6a5 (diff)
downloadpodman-11143676fa0d70357cd65127cee53d98afe21a47.tar.gz
podman-11143676fa0d70357cd65127cee53d98afe21a47.tar.bz2
podman-11143676fa0d70357cd65127cee53d98afe21a47.zip
Disable FFJSON for container structs
We were seeing unmarshal segfaults with it on Signed-off-by: Matthew Heon <matthew.heon@gmail.com> Closes: #440 Approved by: baude
Diffstat (limited to 'libpod/pod_ffjson.go')
-rw-r--r--libpod/pod_ffjson.go392
1 files changed, 0 insertions, 392 deletions
diff --git a/libpod/pod_ffjson.go b/libpod/pod_ffjson.go
deleted file mode 100644
index 2409aaefd..000000000
--- a/libpod/pod_ffjson.go
+++ /dev/null
@@ -1,392 +0,0 @@
-// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
-// source: libpod/pod.go
-
-package libpod
-
-import (
- "bytes"
- "fmt"
- fflib "github.com/pquerna/ffjson/fflib/v1"
-)
-
-// MarshalJSON marshal bytes to json - template
-func (j *PodConfig) MarshalJSON() ([]byte, error) {
- var buf fflib.Buffer
- if j == nil {
- buf.WriteString("null")
- return buf.Bytes(), nil
- }
- err := j.MarshalJSONBuf(&buf)
- if err != nil {
- return nil, err
- }
- return buf.Bytes(), nil
-}
-
-// MarshalJSONBuf marshal buff to json - template
-func (j *PodConfig) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
- if j == nil {
- buf.WriteString("null")
- return nil
- }
- var err error
- var obj []byte
- _ = obj
- _ = err
- buf.WriteString(`{"id":`)
- fflib.WriteJsonString(buf, string(j.ID))
- buf.WriteString(`,"name":`)
- fflib.WriteJsonString(buf, string(j.Name))
- if j.Labels == nil {
- buf.WriteString(`,"Labels":null`)
- } else {
- buf.WriteString(`,"Labels":{ `)
- for key, value := range j.Labels {
- fflib.WriteJsonString(buf, key)
- buf.WriteString(`:`)
- fflib.WriteJsonString(buf, string(value))
- buf.WriteByte(',')
- }
- buf.Rewind(1)
- buf.WriteByte('}')
- }
- buf.WriteByte('}')
- return nil
-}
-
-const (
- ffjtPodConfigbase = iota
- ffjtPodConfignosuchkey
-
- ffjtPodConfigID
-
- ffjtPodConfigName
-
- ffjtPodConfigLabels
-)
-
-var ffjKeyPodConfigID = []byte("id")
-
-var ffjKeyPodConfigName = []byte("name")
-
-var ffjKeyPodConfigLabels = []byte("Labels")
-
-// UnmarshalJSON umarshall json - template of ffjson
-func (j *PodConfig) UnmarshalJSON(input []byte) error {
- fs := fflib.NewFFLexer(input)
- return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
-}
-
-// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
-func (j *PodConfig) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
- var err error
- currentKey := ffjtPodConfigbase
- _ = currentKey
- tok := fflib.FFTok_init
- wantedTok := fflib.FFTok_init
-
-mainparse:
- for {
- tok = fs.Scan()
- // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state))
- if tok == fflib.FFTok_error {
- goto tokerror
- }
-
- switch state {
-
- case fflib.FFParse_map_start:
- if tok != fflib.FFTok_left_bracket {
- wantedTok = fflib.FFTok_left_bracket
- goto wrongtokenerror
- }
- state = fflib.FFParse_want_key
- continue
-
- case fflib.FFParse_after_value:
- if tok == fflib.FFTok_comma {
- state = fflib.FFParse_want_key
- } else if tok == fflib.FFTok_right_bracket {
- goto done
- } else {
- wantedTok = fflib.FFTok_comma
- goto wrongtokenerror
- }
-
- case fflib.FFParse_want_key:
- // json {} ended. goto exit. woo.
- if tok == fflib.FFTok_right_bracket {
- goto done
- }
- if tok != fflib.FFTok_string {
- wantedTok = fflib.FFTok_string
- goto wrongtokenerror
- }
-
- kn := fs.Output.Bytes()
- if len(kn) <= 0 {
- // "" case. hrm.
- currentKey = ffjtPodConfignosuchkey
- state = fflib.FFParse_want_colon
- goto mainparse
- } else {
- switch kn[0] {
-
- case 'L':
-
- if bytes.Equal(ffjKeyPodConfigLabels, kn) {
- currentKey = ffjtPodConfigLabels
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- case 'i':
-
- if bytes.Equal(ffjKeyPodConfigID, kn) {
- currentKey = ffjtPodConfigID
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- case 'n':
-
- if bytes.Equal(ffjKeyPodConfigName, kn) {
- currentKey = ffjtPodConfigName
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- }
-
- if fflib.EqualFoldRight(ffjKeyPodConfigLabels, kn) {
- currentKey = ffjtPodConfigLabels
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- if fflib.SimpleLetterEqualFold(ffjKeyPodConfigName, kn) {
- currentKey = ffjtPodConfigName
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- if fflib.SimpleLetterEqualFold(ffjKeyPodConfigID, kn) {
- currentKey = ffjtPodConfigID
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- currentKey = ffjtPodConfignosuchkey
- state = fflib.FFParse_want_colon
- goto mainparse
- }
-
- case fflib.FFParse_want_colon:
- if tok != fflib.FFTok_colon {
- wantedTok = fflib.FFTok_colon
- goto wrongtokenerror
- }
- state = fflib.FFParse_want_value
- continue
- case fflib.FFParse_want_value:
-
- if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null {
- switch currentKey {
-
- case ffjtPodConfigID:
- goto handle_ID
-
- case ffjtPodConfigName:
- goto handle_Name
-
- case ffjtPodConfigLabels:
- goto handle_Labels
-
- case ffjtPodConfignosuchkey:
- err = fs.SkipField(tok)
- if err != nil {
- return fs.WrapErr(err)
- }
- state = fflib.FFParse_after_value
- goto mainparse
- }
- } else {
- goto wantedvalue
- }
- }
- }
-
-handle_ID:
-
- /* handler: j.ID type=string kind=string quoted=false*/
-
- {
-
- {
- if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
- return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
- }
- }
-
- if tok == fflib.FFTok_null {
-
- } else {
-
- outBuf := fs.Output.Bytes()
-
- j.ID = string(string(outBuf))
-
- }
- }
-
- state = fflib.FFParse_after_value
- goto mainparse
-
-handle_Name:
-
- /* handler: j.Name type=string kind=string quoted=false*/
-
- {
-
- {
- if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
- return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
- }
- }
-
- if tok == fflib.FFTok_null {
-
- } else {
-
- outBuf := fs.Output.Bytes()
-
- j.Name = string(string(outBuf))
-
- }
- }
-
- state = fflib.FFParse_after_value
- goto mainparse
-
-handle_Labels:
-
- /* handler: j.Labels type=map[string]string kind=map quoted=false*/
-
- {
-
- {
- if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null {
- return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok))
- }
- }
-
- if tok == fflib.FFTok_null {
- j.Labels = nil
- } else {
-
- j.Labels = make(map[string]string, 0)
-
- wantVal := true
-
- for {
-
- var k string
-
- var tmpJLabels string
-
- tok = fs.Scan()
- if tok == fflib.FFTok_error {
- goto tokerror
- }
- if tok == fflib.FFTok_right_bracket {
- break
- }
-
- if tok == fflib.FFTok_comma {
- if wantVal == true {
- // TODO(pquerna): this isn't an ideal error message, this handles
- // things like [,,,] as an array value.
- return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok))
- }
- continue
- } else {
- wantVal = true
- }
-
- /* handler: k type=string kind=string quoted=false*/
-
- {
-
- {
- if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
- return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
- }
- }
-
- if tok == fflib.FFTok_null {
-
- } else {
-
- outBuf := fs.Output.Bytes()
-
- k = string(string(outBuf))
-
- }
- }
-
- // Expect ':' after key
- tok = fs.Scan()
- if tok != fflib.FFTok_colon {
- return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok))
- }
-
- tok = fs.Scan()
- /* handler: tmpJLabels type=string kind=string quoted=false*/
-
- {
-
- {
- if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
- return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
- }
- }
-
- if tok == fflib.FFTok_null {
-
- } else {
-
- outBuf := fs.Output.Bytes()
-
- tmpJLabels = string(string(outBuf))
-
- }
- }
-
- j.Labels[k] = tmpJLabels
-
- wantVal = false
- }
-
- }
- }
-
- state = fflib.FFParse_after_value
- goto mainparse
-
-wantedvalue:
- return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok))
-wrongtokenerror:
- return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String()))
-tokerror:
- if fs.BigError != nil {
- return fs.WrapErr(fs.BigError)
- }
- err = fs.Error.ToError()
- if err != nil {
- return fs.WrapErr(err)
- }
- panic("ffjson-generated: unreachable, please report bug.")
-done:
-
- return nil
-}