mirror of
https://github.com/containers/podman.git
synced 2025-05-21 09:05:56 +08:00
Bump Buildah to v1.33.1
Bump Buildah to v1.33.1 to get a CVE fix for Buildkit. I thought it was also going to drag in the test fix as mentioned in #20709, but I'm not seeing that here. [NO NEW TESTS NEEDED] Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
This commit is contained in:
6
vendor/github.com/containers/buildah/CHANGELOG.md
generated
vendored
6
vendor/github.com/containers/buildah/CHANGELOG.md
generated
vendored
@ -2,6 +2,12 @@
|
||||
|
||||
# Changelog
|
||||
|
||||
## v1.33.1 (2023-11-18)
|
||||
|
||||
fix(deps): update module github.com/moby/buildkit to v0.11.4 [security]
|
||||
test,heredoc: use fedora instead of docker.io/library/python:latest
|
||||
Bump to v1.33.1-dev
|
||||
|
||||
## v1.33.0 (2023-11-17)
|
||||
|
||||
Never omit layers for emptyLayer instructions when squashing/cwing
|
||||
|
5
vendor/github.com/containers/buildah/changelog.txt
generated
vendored
5
vendor/github.com/containers/buildah/changelog.txt
generated
vendored
@ -1,3 +1,8 @@
|
||||
- Changelog for v1.33.1 (2023-11-18)
|
||||
* fix(deps): update module github.com/moby/buildkit to v0.11.4 [security]
|
||||
* test,heredoc: use fedora instead of docker.io/library/python:latest
|
||||
* Bump to v1.33.1-dev
|
||||
|
||||
- Changelog for v1.33.0 (2023-11-17)
|
||||
* Never omit layers for emptyLayer instructions when squashing/cwing
|
||||
* Add OverrideChanges and OverrideConfig to CommitOptions
|
||||
|
2
vendor/github.com/containers/buildah/define/types.go
generated
vendored
2
vendor/github.com/containers/buildah/define/types.go
generated
vendored
@ -29,7 +29,7 @@ const (
|
||||
// identify working containers.
|
||||
Package = "buildah"
|
||||
// Version for the Package. Also used by .packit.sh for Packit builds.
|
||||
Version = "1.33.0"
|
||||
Version = "1.33.1"
|
||||
|
||||
// DefaultRuntime if containers.conf fails.
|
||||
DefaultRuntime = "runc"
|
||||
|
171
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/directives.go
generated
vendored
Normal file
171
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/directives.go
generated
vendored
Normal file
@ -0,0 +1,171 @@
|
||||
package parser
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
keySyntax = "syntax"
|
||||
keyEscape = "escape"
|
||||
)
|
||||
|
||||
var validDirectives = map[string]struct{}{
|
||||
keySyntax: {},
|
||||
keyEscape: {},
|
||||
}
|
||||
|
||||
type Directive struct {
|
||||
Name string
|
||||
Value string
|
||||
Location []Range
|
||||
}
|
||||
|
||||
// DirectiveParser is a parser for Dockerfile directives that enforces the
|
||||
// quirks of the directive parser.
|
||||
type DirectiveParser struct {
|
||||
line int
|
||||
regexp *regexp.Regexp
|
||||
seen map[string]struct{}
|
||||
done bool
|
||||
}
|
||||
|
||||
func (d *DirectiveParser) setComment(comment string) {
|
||||
d.regexp = regexp.MustCompile(fmt.Sprintf(`^%s\s*([a-zA-Z][a-zA-Z0-9]*)\s*=\s*(.+?)\s*$`, comment))
|
||||
}
|
||||
|
||||
func (d *DirectiveParser) ParseLine(line []byte) (*Directive, error) {
|
||||
d.line++
|
||||
if d.done {
|
||||
return nil, nil
|
||||
}
|
||||
if d.regexp == nil {
|
||||
d.setComment("#")
|
||||
}
|
||||
|
||||
match := d.regexp.FindSubmatch(line)
|
||||
if len(match) == 0 {
|
||||
d.done = true
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
k := strings.ToLower(string(match[1]))
|
||||
if _, ok := validDirectives[k]; !ok {
|
||||
d.done = true
|
||||
return nil, nil
|
||||
}
|
||||
if d.seen == nil {
|
||||
d.seen = map[string]struct{}{}
|
||||
}
|
||||
if _, ok := d.seen[k]; ok {
|
||||
return nil, errors.Errorf("only one %s parser directive can be used", k)
|
||||
}
|
||||
d.seen[k] = struct{}{}
|
||||
|
||||
v := string(match[2])
|
||||
|
||||
directive := Directive{
|
||||
Name: k,
|
||||
Value: v,
|
||||
Location: []Range{{
|
||||
Start: Position{Line: d.line},
|
||||
End: Position{Line: d.line},
|
||||
}},
|
||||
}
|
||||
return &directive, nil
|
||||
}
|
||||
|
||||
func (d *DirectiveParser) ParseAll(data []byte) ([]*Directive, error) {
|
||||
scanner := bufio.NewScanner(bytes.NewReader(data))
|
||||
var directives []*Directive
|
||||
for scanner.Scan() {
|
||||
if d.done {
|
||||
break
|
||||
}
|
||||
|
||||
d, err := d.ParseLine(scanner.Bytes())
|
||||
if err != nil {
|
||||
return directives, err
|
||||
}
|
||||
if d != nil {
|
||||
directives = append(directives, d)
|
||||
}
|
||||
}
|
||||
return directives, nil
|
||||
}
|
||||
|
||||
// DetectSyntax returns the syntax of provided input.
|
||||
//
|
||||
// The traditional dockerfile directives '# syntax = ...' are used by default,
|
||||
// however, the function will also fallback to c-style directives '// syntax = ...'
|
||||
// and json-encoded directives '{ "syntax": "..." }'. Finally, starting lines
|
||||
// with '#!' are treated as shebangs and ignored.
|
||||
//
|
||||
// This allows for a flexible range of input formats, and appropriate syntax
|
||||
// selection.
|
||||
func DetectSyntax(dt []byte) (string, string, []Range, bool) {
|
||||
dt, hadShebang, err := discardShebang(dt)
|
||||
if err != nil {
|
||||
return "", "", nil, false
|
||||
}
|
||||
line := 0
|
||||
if hadShebang {
|
||||
line++
|
||||
}
|
||||
|
||||
// use default directive parser, and search for #syntax=
|
||||
directiveParser := DirectiveParser{line: line}
|
||||
if syntax, cmdline, loc, ok := detectSyntaxFromParser(dt, directiveParser); ok {
|
||||
return syntax, cmdline, loc, true
|
||||
}
|
||||
|
||||
// use directive with different comment prefix, and search for //syntax=
|
||||
directiveParser = DirectiveParser{line: line}
|
||||
directiveParser.setComment("//")
|
||||
if syntax, cmdline, loc, ok := detectSyntaxFromParser(dt, directiveParser); ok {
|
||||
return syntax, cmdline, loc, true
|
||||
}
|
||||
|
||||
// search for possible json directives
|
||||
var directive struct {
|
||||
Syntax string `json:"syntax"`
|
||||
}
|
||||
if err := json.Unmarshal(dt, &directive); err == nil {
|
||||
if directive.Syntax != "" {
|
||||
loc := []Range{{
|
||||
Start: Position{Line: line},
|
||||
End: Position{Line: line},
|
||||
}}
|
||||
return directive.Syntax, directive.Syntax, loc, true
|
||||
}
|
||||
}
|
||||
|
||||
return "", "", nil, false
|
||||
}
|
||||
|
||||
func detectSyntaxFromParser(dt []byte, parser DirectiveParser) (string, string, []Range, bool) {
|
||||
directives, _ := parser.ParseAll(dt)
|
||||
for _, d := range directives {
|
||||
// check for syntax directive before erroring out, since the error
|
||||
// might have occurred *after* the syntax directive
|
||||
if d.Name == keySyntax {
|
||||
p, _, _ := strings.Cut(d.Value, " ")
|
||||
return p, d.Value, d.Location, true
|
||||
}
|
||||
}
|
||||
return "", "", nil, false
|
||||
}
|
||||
|
||||
func discardShebang(dt []byte) ([]byte, bool, error) {
|
||||
line, rest, _ := bytes.Cut(dt, []byte("\n"))
|
||||
if bytes.HasPrefix(line, []byte("#!")) {
|
||||
return rest, true, nil
|
||||
}
|
||||
return dt, false, nil
|
||||
}
|
8
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/line_parsers.go
generated
vendored
8
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/line_parsers.go
generated
vendored
@ -8,7 +8,6 @@ package parser
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
"unicode"
|
||||
"unicode/utf8"
|
||||
@ -34,7 +33,6 @@ func parseIgnore(rest string, d *directives) (*Node, map[string]bool, error) {
|
||||
// statement with sub-statements.
|
||||
//
|
||||
// ONBUILD RUN foo bar -> (onbuild (run foo bar))
|
||||
//
|
||||
func parseSubCommand(rest string, d *directives) (*Node, map[string]bool, error) {
|
||||
if rest == "" {
|
||||
return nil, nil, nil
|
||||
@ -154,7 +152,7 @@ func parseNameVal(rest string, key string, d *directives) (*Node, error) {
|
||||
if !strings.Contains(words[0], "=") {
|
||||
parts := reWhitespace.Split(rest, 2)
|
||||
if len(parts) < 2 {
|
||||
return nil, fmt.Errorf(key + " must have two arguments")
|
||||
return nil, errors.Errorf("%s must have two arguments", key)
|
||||
}
|
||||
return newKeyValueNode(parts[0], parts[1]), nil
|
||||
}
|
||||
@ -163,7 +161,7 @@ func parseNameVal(rest string, key string, d *directives) (*Node, error) {
|
||||
var prevNode *Node
|
||||
for _, word := range words {
|
||||
if !strings.Contains(word, "=") {
|
||||
return nil, fmt.Errorf("Syntax error - can't find = in %q. Must be of the form: name=value", word)
|
||||
return nil, errors.Errorf("Syntax error - can't find = in %q. Must be of the form: name=value", word)
|
||||
}
|
||||
|
||||
parts := strings.SplitN(word, "=", 2)
|
||||
@ -274,7 +272,7 @@ func parseString(rest string, d *directives) (*Node, map[string]bool, error) {
|
||||
func parseJSON(rest string, d *directives) (*Node, map[string]bool, error) {
|
||||
rest = strings.TrimLeftFunc(rest, unicode.IsSpace)
|
||||
if !strings.HasPrefix(rest, "[") {
|
||||
return nil, nil, fmt.Errorf(`Error parsing "%s" as a JSON array`, rest)
|
||||
return nil, nil, errors.Errorf("Error parsing %q as a JSON array", rest)
|
||||
}
|
||||
|
||||
var myJSON []interface{}
|
||||
|
70
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/parser.go
generated
vendored
70
vendor/github.com/moby/buildkit/frontend/dockerfile/parser/parser.go
generated
vendored
@ -1,4 +1,5 @@
|
||||
// Package parser implements a parser and parse tree dumper for Dockerfiles.
|
||||
// The parser package implements a parser that transforms a raw byte-stream
|
||||
// into a low-level Abstract Syntax Tree.
|
||||
package parser
|
||||
|
||||
import (
|
||||
@ -27,7 +28,6 @@ import (
|
||||
// This data structure is frankly pretty lousy for handling complex languages,
|
||||
// but lucky for us the Dockerfile isn't very complicated. This structure
|
||||
// works a little more effectively than a "proper" parse tree for our needs.
|
||||
//
|
||||
type Node struct {
|
||||
Value string // actual content
|
||||
Next *Node // the next item in the current sexp
|
||||
@ -115,7 +115,6 @@ type Heredoc struct {
|
||||
var (
|
||||
dispatch map[string]func(string, *directives) (*Node, map[string]bool, error)
|
||||
reWhitespace = regexp.MustCompile(`[\t\v\f\r ]+`)
|
||||
reDirectives = regexp.MustCompile(`^#\s*([a-zA-Z][a-zA-Z0-9]*)\s*=\s*(.+?)\s*$`)
|
||||
reComment = regexp.MustCompile(`^#.*$`)
|
||||
reHeredoc = regexp.MustCompile(`^(\d*)<<(-?)([^<]*)$`)
|
||||
reLeadingTabs = regexp.MustCompile(`(?m)^\t+`)
|
||||
@ -124,11 +123,6 @@ var (
|
||||
// DefaultEscapeToken is the default escape token
|
||||
const DefaultEscapeToken = '\\'
|
||||
|
||||
var validDirectives = map[string]struct{}{
|
||||
"escape": {},
|
||||
"syntax": {},
|
||||
}
|
||||
|
||||
var (
|
||||
// Directives allowed to contain heredocs
|
||||
heredocDirectives = map[string]bool{
|
||||
@ -143,13 +137,12 @@ var (
|
||||
}
|
||||
)
|
||||
|
||||
// directive is the structure used during a build run to hold the state of
|
||||
// directives is the structure used during a build run to hold the state of
|
||||
// parsing directives.
|
||||
type directives struct {
|
||||
escapeToken rune // Current escape token
|
||||
lineContinuationRegex *regexp.Regexp // Current line continuation regex
|
||||
done bool // Whether we are done looking for directives
|
||||
seen map[string]struct{} // Whether the escape directive has been seen
|
||||
parser DirectiveParser
|
||||
escapeToken rune // Current escape token
|
||||
lineContinuationRegex *regexp.Regexp // Current line continuation regex
|
||||
}
|
||||
|
||||
// setEscapeToken sets the default token for escaping characters and as line-
|
||||
@ -178,40 +171,19 @@ func (d *directives) setEscapeToken(s string) error {
|
||||
// Parser directives must precede any builder instruction or other comments,
|
||||
// and cannot be repeated.
|
||||
func (d *directives) possibleParserDirective(line string) error {
|
||||
if d.done {
|
||||
return nil
|
||||
directive, err := d.parser.ParseLine([]byte(line))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
match := reDirectives.FindStringSubmatch(line)
|
||||
if len(match) == 0 {
|
||||
d.done = true
|
||||
return nil
|
||||
if directive != nil && directive.Name == keyEscape {
|
||||
return d.setEscapeToken(directive.Value)
|
||||
}
|
||||
|
||||
k := strings.ToLower(match[1])
|
||||
_, ok := validDirectives[k]
|
||||
if !ok {
|
||||
d.done = true
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, ok := d.seen[k]; ok {
|
||||
return errors.Errorf("only one %s parser directive can be used", k)
|
||||
}
|
||||
d.seen[k] = struct{}{}
|
||||
|
||||
if k == "escape" {
|
||||
return d.setEscapeToken(match[2])
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// newDefaultDirectives returns a new directives structure with the default escapeToken token
|
||||
func newDefaultDirectives() *directives {
|
||||
d := &directives{
|
||||
seen: map[string]struct{}{},
|
||||
}
|
||||
d := &directives{}
|
||||
d.setEscapeToken(string(DefaultEscapeToken))
|
||||
return d
|
||||
}
|
||||
@ -274,13 +246,15 @@ func newNodeFromLine(line string, d *directives, comments []string) (*Node, erro
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Result is the result of parsing a Dockerfile
|
||||
// Result contains the bundled outputs from parsing a Dockerfile.
|
||||
type Result struct {
|
||||
AST *Node
|
||||
EscapeToken rune
|
||||
Warnings []Warning
|
||||
}
|
||||
|
||||
// Warning contains information to identify and locate a warning generated
|
||||
// during parsing.
|
||||
type Warning struct {
|
||||
Short string
|
||||
Detail [][]byte
|
||||
@ -301,8 +275,8 @@ func (r *Result) PrintWarnings(out io.Writer) {
|
||||
}
|
||||
}
|
||||
|
||||
// Parse reads lines from a Reader, parses the lines into an AST and returns
|
||||
// the AST and escape token
|
||||
// Parse consumes lines from a provided Reader, parses each line into an AST
|
||||
// and returns the results of doing so.
|
||||
func Parse(rwc io.Reader) (*Result, error) {
|
||||
d := newDefaultDirectives()
|
||||
currentLine := 0
|
||||
@ -421,7 +395,7 @@ func Parse(rwc io.Reader) (*Result, error) {
|
||||
}, withLocation(handleScannerError(scanner.Err()), currentLine, 0)
|
||||
}
|
||||
|
||||
// Extracts a heredoc from a possible heredoc regex match
|
||||
// heredocFromMatch extracts a heredoc from a possible heredoc regex match.
|
||||
func heredocFromMatch(match []string) (*Heredoc, error) {
|
||||
if len(match) == 0 {
|
||||
return nil, nil
|
||||
@ -457,7 +431,7 @@ func heredocFromMatch(match []string) (*Heredoc, error) {
|
||||
return nil, err
|
||||
}
|
||||
if len(wordsRaw) != len(words) {
|
||||
return nil, fmt.Errorf("internal lexing of heredoc produced inconsistent results: %s", rest)
|
||||
return nil, errors.Errorf("internal lexing of heredoc produced inconsistent results: %s", rest)
|
||||
}
|
||||
|
||||
word := words[0]
|
||||
@ -475,9 +449,14 @@ func heredocFromMatch(match []string) (*Heredoc, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// ParseHeredoc parses a heredoc word from a target string, returning the
|
||||
// components from the doc.
|
||||
func ParseHeredoc(src string) (*Heredoc, error) {
|
||||
return heredocFromMatch(reHeredoc.FindStringSubmatch(src))
|
||||
}
|
||||
|
||||
// MustParseHeredoc is a variant of ParseHeredoc that discards the error, if
|
||||
// there was one present.
|
||||
func MustParseHeredoc(src string) *Heredoc {
|
||||
heredoc, _ := ParseHeredoc(src)
|
||||
return heredoc
|
||||
@ -503,6 +482,7 @@ func heredocsFromLine(line string) ([]Heredoc, error) {
|
||||
return docs, nil
|
||||
}
|
||||
|
||||
// ChompHeredocContent chomps leading tabs from the heredoc.
|
||||
func ChompHeredocContent(src string) string {
|
||||
return reLeadingTabs.ReplaceAllString(src, "")
|
||||
}
|
||||
|
2
vendor/github.com/moby/buildkit/frontend/dockerfile/shell/lex.go
generated
vendored
2
vendor/github.com/moby/buildkit/frontend/dockerfile/shell/lex.go
generated
vendored
@ -377,7 +377,7 @@ func (sw *shellWord) processDollar() (string, error) {
|
||||
}
|
||||
|
||||
// Grab the current value of the variable in question so we
|
||||
// can use to to determine what to do based on the modifier
|
||||
// can use it to determine what to do based on the modifier
|
||||
newValue, found := sw.getEnv(name)
|
||||
|
||||
switch modifier {
|
||||
|
8
vendor/github.com/moby/buildkit/util/stack/stack.go
generated
vendored
8
vendor/github.com/moby/buildkit/util/stack/stack.go
generated
vendored
@ -79,7 +79,7 @@ func Enable(err error) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func Wrap(err error, s Stack) error {
|
||||
func Wrap(err error, s *Stack) error {
|
||||
return &withStack{stack: s, error: err}
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ func convertStack(s errors.StackTrace) *Stack {
|
||||
if idx == -1 {
|
||||
continue
|
||||
}
|
||||
line, err := strconv.Atoi(p[1][idx+1:])
|
||||
line, err := strconv.ParseInt(p[1][idx+1:], 10, 32)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
@ -169,7 +169,7 @@ func convertStack(s errors.StackTrace) *Stack {
|
||||
}
|
||||
|
||||
type withStack struct {
|
||||
stack Stack
|
||||
stack *Stack
|
||||
error
|
||||
}
|
||||
|
||||
@ -178,5 +178,5 @@ func (e *withStack) Unwrap() error {
|
||||
}
|
||||
|
||||
func (e *withStack) StackTrace() *Stack {
|
||||
return &e.stack
|
||||
return e.stack
|
||||
}
|
||||
|
317
vendor/github.com/moby/buildkit/util/stack/stack.pb.go
generated
vendored
317
vendor/github.com/moby/buildkit/util/stack/stack.pb.go
generated
vendored
@ -1,172 +1,261 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.28.1
|
||||
// protoc v3.11.4
|
||||
// source: stack.proto
|
||||
|
||||
package stack
|
||||
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
math "math"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
var _ = fmt.Errorf
|
||||
var _ = math.Inf
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type Stack struct {
|
||||
Frames []*Frame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
|
||||
Cmdline []string `protobuf:"bytes,2,rep,name=cmdline,proto3" json:"cmdline,omitempty"`
|
||||
Pid int32 `protobuf:"varint,3,opt,name=pid,proto3" json:"pid,omitempty"`
|
||||
Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
|
||||
Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Frames []*Frame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"`
|
||||
Cmdline []string `protobuf:"bytes,2,rep,name=cmdline,proto3" json:"cmdline,omitempty"`
|
||||
Pid int32 `protobuf:"varint,3,opt,name=pid,proto3" json:"pid,omitempty"`
|
||||
Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
|
||||
Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"`
|
||||
}
|
||||
|
||||
func (m *Stack) Reset() { *m = Stack{} }
|
||||
func (m *Stack) String() string { return proto.CompactTextString(m) }
|
||||
func (*Stack) ProtoMessage() {}
|
||||
func (x *Stack) Reset() {
|
||||
*x = Stack{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stack_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Stack) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Stack) ProtoMessage() {}
|
||||
|
||||
func (x *Stack) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stack_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Stack.ProtoReflect.Descriptor instead.
|
||||
func (*Stack) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_b44c07feb2ca0a5a, []int{0}
|
||||
return file_stack_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (m *Stack) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Stack.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Stack) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Stack.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Stack) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Stack.Merge(m, src)
|
||||
}
|
||||
func (m *Stack) XXX_Size() int {
|
||||
return xxx_messageInfo_Stack.Size(m)
|
||||
}
|
||||
func (m *Stack) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Stack.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Stack proto.InternalMessageInfo
|
||||
|
||||
func (m *Stack) GetFrames() []*Frame {
|
||||
if m != nil {
|
||||
return m.Frames
|
||||
func (x *Stack) GetFrames() []*Frame {
|
||||
if x != nil {
|
||||
return x.Frames
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Stack) GetCmdline() []string {
|
||||
if m != nil {
|
||||
return m.Cmdline
|
||||
func (x *Stack) GetCmdline() []string {
|
||||
if x != nil {
|
||||
return x.Cmdline
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Stack) GetPid() int32 {
|
||||
if m != nil {
|
||||
return m.Pid
|
||||
func (x *Stack) GetPid() int32 {
|
||||
if x != nil {
|
||||
return x.Pid
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Stack) GetVersion() string {
|
||||
if m != nil {
|
||||
return m.Version
|
||||
func (x *Stack) GetVersion() string {
|
||||
if x != nil {
|
||||
return x.Version
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Stack) GetRevision() string {
|
||||
if m != nil {
|
||||
return m.Revision
|
||||
func (x *Stack) GetRevision() string {
|
||||
if x != nil {
|
||||
return x.Revision
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type Frame struct {
|
||||
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
|
||||
File string `protobuf:"bytes,2,opt,name=File,proto3" json:"File,omitempty"`
|
||||
Line int32 `protobuf:"varint,3,opt,name=Line,proto3" json:"Line,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
|
||||
File string `protobuf:"bytes,2,opt,name=File,proto3" json:"File,omitempty"`
|
||||
Line int32 `protobuf:"varint,3,opt,name=Line,proto3" json:"Line,omitempty"`
|
||||
}
|
||||
|
||||
func (m *Frame) Reset() { *m = Frame{} }
|
||||
func (m *Frame) String() string { return proto.CompactTextString(m) }
|
||||
func (*Frame) ProtoMessage() {}
|
||||
func (x *Frame) Reset() {
|
||||
*x = Frame{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_stack_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Frame) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Frame) ProtoMessage() {}
|
||||
|
||||
func (x *Frame) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_stack_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Frame.ProtoReflect.Descriptor instead.
|
||||
func (*Frame) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_b44c07feb2ca0a5a, []int{1}
|
||||
return file_stack_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (m *Frame) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Frame.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Frame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Frame.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Frame) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Frame.Merge(m, src)
|
||||
}
|
||||
func (m *Frame) XXX_Size() int {
|
||||
return xxx_messageInfo_Frame.Size(m)
|
||||
}
|
||||
func (m *Frame) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Frame.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Frame proto.InternalMessageInfo
|
||||
|
||||
func (m *Frame) GetName() string {
|
||||
if m != nil {
|
||||
return m.Name
|
||||
func (x *Frame) GetName() string {
|
||||
if x != nil {
|
||||
return x.Name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Frame) GetFile() string {
|
||||
if m != nil {
|
||||
return m.File
|
||||
func (x *Frame) GetFile() string {
|
||||
if x != nil {
|
||||
return x.File
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Frame) GetLine() int32 {
|
||||
if m != nil {
|
||||
return m.Line
|
||||
func (x *Frame) GetLine() int32 {
|
||||
if x != nil {
|
||||
return x.Line
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*Stack)(nil), "stack.Stack")
|
||||
proto.RegisterType((*Frame)(nil), "stack.Frame")
|
||||
var File_stack_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_stack_proto_rawDesc = []byte{
|
||||
0x0a, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x22, 0x8f, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x24,
|
||||
0x0a, 0x06, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c,
|
||||
0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x06, 0x66, 0x72,
|
||||
0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x69, 0x64,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
|
||||
0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
|
||||
0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x05, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e,
|
||||
0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("stack.proto", fileDescriptor_b44c07feb2ca0a5a)
|
||||
var (
|
||||
file_stack_proto_rawDescOnce sync.Once
|
||||
file_stack_proto_rawDescData = file_stack_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_stack_proto_rawDescGZIP() []byte {
|
||||
file_stack_proto_rawDescOnce.Do(func() {
|
||||
file_stack_proto_rawDescData = protoimpl.X.CompressGZIP(file_stack_proto_rawDescData)
|
||||
})
|
||||
return file_stack_proto_rawDescData
|
||||
}
|
||||
|
||||
var fileDescriptor_b44c07feb2ca0a5a = []byte{
|
||||
// 185 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x3c, 0x8f, 0x3d, 0xce, 0x82, 0x40,
|
||||
0x10, 0x86, 0xb3, 0xdf, 0xb2, 0x7c, 0x3a, 0x58, 0x98, 0xa9, 0x36, 0x56, 0x1b, 0x62, 0x41, 0x45,
|
||||
0xa1, 0x47, 0x30, 0xa1, 0x32, 0x16, 0x78, 0x02, 0x84, 0x35, 0xd9, 0xc8, 0x5f, 0x76, 0x09, 0xd7,
|
||||
0xf0, 0xca, 0x66, 0x06, 0xb4, 0x7b, 0xde, 0x9f, 0xe4, 0x9d, 0x81, 0x24, 0x4c, 0x55, 0xfd, 0xca,
|
||||
0x47, 0x3f, 0x4c, 0x03, 0x2a, 0x16, 0xe9, 0x5b, 0x80, 0xba, 0x13, 0xe1, 0x11, 0xe2, 0xa7, 0xaf,
|
||||
0x3a, 0x1b, 0xb4, 0x30, 0x32, 0x4b, 0x4e, 0xbb, 0x7c, 0xa9, 0x17, 0x64, 0x96, 0x6b, 0x86, 0x1a,
|
||||
0xfe, 0xeb, 0xae, 0x69, 0x5d, 0x6f, 0xf5, 0x9f, 0x91, 0xd9, 0xb6, 0xfc, 0x4a, 0xdc, 0x83, 0x1c,
|
||||
0x5d, 0xa3, 0xa5, 0x11, 0x99, 0x2a, 0x09, 0xa9, 0x3b, 0x5b, 0x1f, 0xdc, 0xd0, 0xeb, 0xc8, 0x08,
|
||||
0xea, 0xae, 0x12, 0x0f, 0xb0, 0xf1, 0x76, 0x76, 0x1c, 0x29, 0x8e, 0x7e, 0x3a, 0xbd, 0x80, 0xe2,
|
||||
0x49, 0x44, 0x88, 0x6e, 0x55, 0x67, 0xb5, 0xe0, 0x02, 0x33, 0x79, 0x85, 0x6b, 0x69, 0x9b, 0x3d,
|
||||
0x62, 0xf2, 0xae, 0x74, 0xcf, 0xb2, 0xcc, 0xfc, 0x88, 0xf9, 0xc9, 0xf3, 0x27, 0x00, 0x00, 0xff,
|
||||
0xff, 0xfd, 0x2c, 0xbb, 0xfb, 0xf3, 0x00, 0x00, 0x00,
|
||||
var file_stack_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_stack_proto_goTypes = []interface{}{
|
||||
(*Stack)(nil), // 0: stack.Stack
|
||||
(*Frame)(nil), // 1: stack.Frame
|
||||
}
|
||||
var file_stack_proto_depIdxs = []int32{
|
||||
1, // 0: stack.Stack.frames:type_name -> stack.Frame
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_stack_proto_init() }
|
||||
func file_stack_proto_init() {
|
||||
if File_stack_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_stack_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Stack); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_stack_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Frame); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_stack_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_stack_proto_goTypes,
|
||||
DependencyIndexes: file_stack_proto_depIdxs,
|
||||
MessageInfos: file_stack_proto_msgTypes,
|
||||
}.Build()
|
||||
File_stack_proto = out.File
|
||||
file_stack_proto_rawDesc = nil
|
||||
file_stack_proto_goTypes = nil
|
||||
file_stack_proto_depIdxs = nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user