diff --git a/.github/contributors.yaml b/.github/contributors.yaml index e0c3131c5..d8f4a6b20 100644 --- a/.github/contributors.yaml +++ b/.github/contributors.yaml @@ -92,3 +92,6 @@ users: neo-0007: name: Hrishikesh Gohain email: hrishikeshgohain123@gmail.com + rishi-jat: + name: Rishi Jat + email: rishijat098@gmail.com diff --git a/pkg/unikontainers/unikontainers.go b/pkg/unikontainers/unikontainers.go index c16a3a607..b7d61def7 100644 --- a/pkg/unikontainers/unikontainers.go +++ b/pkg/unikontainers/unikontainers.go @@ -70,6 +70,10 @@ func New(bundlePath string, containerID string, rootDir string, cfg *UruncConfig return nil, err } + if spec == nil || spec.Linux == nil { + return nil, fmt.Errorf("invalid OCI spec: linux section is required") + } + containerName := spec.Annotations["io.kubernetes.cri.container-name"] if containerName == "queue-proxy" { uniklog.Warn("This is a queue-proxy container. Adding IP env.") @@ -125,6 +129,9 @@ func Get(containerID string, rootDir string) (*Unikontainer, error) { if err != nil { return nil, err } + if spec == nil || spec.Linux == nil { + return nil, fmt.Errorf("invalid OCI spec: linux section is required") + } u.BaseDir = containerDir u.RootDir = rootDir u.Spec = spec @@ -357,7 +364,7 @@ func (u *Unikontainer) Exec(metrics m.Writer) error { // ExecArgs // If memory limit is set in spec, use it instead of the config default value - if u.Spec.Linux.Resources.Memory != nil { + if u.Spec.Linux.Resources != nil && u.Spec.Linux.Resources.Memory != nil { if u.Spec.Linux.Resources.Memory.Limit != nil { if *u.Spec.Linux.Resources.Memory.Limit > 0 { vmmArgs.MemSizeB = uint64(*u.Spec.Linux.Resources.Memory.Limit) // nolint:gosec