@@ -12,6 +12,7 @@ import (
1212 "github.com/docker/docker/pkg/containerfs"
1313 "github.com/docker/docker/pkg/idtools"
1414 "github.com/docker/docker/pkg/stringid"
15+ "github.com/docker/docker/pkg/system"
1516 "github.com/docker/docker/registry"
1617 "github.com/pkg/errors"
1718 "github.com/sirupsen/logrus"
@@ -70,7 +71,7 @@ func (rl *releaseableLayer) Commit() (builder.ReleaseableLayer, error) {
7071 if err != nil {
7172 return nil , err
7273 }
73- // TODO: An optimization woudld be to handle empty layers before returning
74+ // TODO: An optimization would be to handle empty layers before returning
7475 return & releaseableLayer {layerStore : rl .layerStore , roLayer : newLayer }, nil
7576}
7677
@@ -171,6 +172,9 @@ func (daemon *Daemon) pullForBuilder(ctx context.Context, name string, authConfi
171172// leaking of layers.
172173func (daemon * Daemon ) GetImageAndReleasableLayer (ctx context.Context , refOrID string , opts backend.GetImageAndLayerOptions ) (builder.Image , builder.ReleaseableLayer , error ) {
173174 if refOrID == "" {
175+ if ! system .IsOSSupported (opts .OS ) {
176+ return nil , nil , system .ErrNotSupportedOperatingSystem
177+ }
174178 layer , err := newReleasableLayerForImage (nil , daemon .layerStores [opts .OS ])
175179 return nil , layer , err
176180 }
@@ -182,6 +186,9 @@ func (daemon *Daemon) GetImageAndReleasableLayer(ctx context.Context, refOrID st
182186 }
183187 // TODO: shouldn't we error out if error is different from "not found" ?
184188 if image != nil {
189+ if ! system .IsOSSupported (image .OperatingSystem ()) {
190+ return nil , nil , system .ErrNotSupportedOperatingSystem
191+ }
185192 layer , err := newReleasableLayerForImage (image , daemon .layerStores [image .OperatingSystem ()])
186193 return image , layer , err
187194 }
@@ -191,6 +198,9 @@ func (daemon *Daemon) GetImageAndReleasableLayer(ctx context.Context, refOrID st
191198 if err != nil {
192199 return nil , nil , err
193200 }
201+ if ! system .IsOSSupported (image .OperatingSystem ()) {
202+ return nil , nil , system .ErrNotSupportedOperatingSystem
203+ }
194204 layer , err := newReleasableLayerForImage (image , daemon .layerStores [image .OperatingSystem ()])
195205 return image , layer , err
196206}
0 commit comments