Signed-off-by: Jessica Frazelle <acidburn@docker.com>
| ... | ... |
@@ -103,8 +103,6 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res |
| 103 | 103 |
stderr = stdcopy.NewStdWriter(outStream, stdcopy.Stderr) |
| 104 | 104 |
stdout = stdcopy.NewStdWriter(outStream, stdcopy.Stdout) |
| 105 | 105 |
} |
| 106 |
- } else {
|
|
| 107 |
- outStream = w |
|
| 108 | 106 |
} |
| 109 | 107 |
|
| 110 | 108 |
// Now run the user process in container. |
| ... | ... |
@@ -142,6 +142,9 @@ func sanitizeRepoAndTags(names []string) ([]reference.Named, error) {
|
| 142 | 142 |
|
| 143 | 143 |
if _, isTagged := ref.(reference.NamedTagged); !isTagged {
|
| 144 | 144 |
ref, err = reference.WithTag(ref, reference.DefaultTag) |
| 145 |
+ if err != nil {
|
|
| 146 |
+ return nil, err |
|
| 147 |
+ } |
|
| 145 | 148 |
} |
| 146 | 149 |
|
| 147 | 150 |
nameWithTag := ref.String() |
| ... | ... |
@@ -378,12 +378,14 @@ func TestJsonWithPsFormat(t *testing.T) {
|
| 378 | 378 |
|
| 379 | 379 |
// Save it and make sure it shows up in new form |
| 380 | 380 |
func saveConfigAndValidateNewFormat(t *testing.T, config *ConfigFile, homeFolder string) string {
|
| 381 |
- err := config.Save() |
|
| 382 |
- if err != nil {
|
|
| 381 |
+ if err := config.Save(); err != nil {
|
|
| 383 | 382 |
t.Fatalf("Failed to save: %q", err)
|
| 384 | 383 |
} |
| 385 | 384 |
|
| 386 | 385 |
buf, err := ioutil.ReadFile(filepath.Join(homeFolder, ConfigFileName)) |
| 386 |
+ if err != nil {
|
|
| 387 |
+ t.Fatal(err) |
|
| 388 |
+ } |
|
| 387 | 389 |
if !strings.Contains(string(buf), `"auths":`) {
|
| 388 | 390 |
t.Fatalf("Should have save in new form: %s", string(buf))
|
| 389 | 391 |
} |
| ... | ... |
@@ -487,6 +489,9 @@ func TestJsonSaveWithNoFile(t *testing.T) {
|
| 487 | 487 |
t.Fatalf("Failed saving to file: %q", err)
|
| 488 | 488 |
} |
| 489 | 489 |
buf, err := ioutil.ReadFile(filepath.Join(tmpHome, ConfigFileName)) |
| 490 |
+ if err != nil {
|
|
| 491 |
+ t.Fatal(err) |
|
| 492 |
+ } |
|
| 490 | 493 |
expConfStr := `{
|
| 491 | 494 |
"auths": {
|
| 492 | 495 |
"https://index.docker.io/v1/": {
|
| ... | ... |
@@ -517,11 +522,13 @@ func TestLegacyJsonSaveWithNoFile(t *testing.T) {
|
| 517 | 517 |
|
| 518 | 518 |
fn := filepath.Join(tmpHome, ConfigFileName) |
| 519 | 519 |
f, _ := os.OpenFile(fn, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) |
| 520 |
- err = config.SaveToWriter(f) |
|
| 521 |
- if err != nil {
|
|
| 520 |
+ if err = config.SaveToWriter(f); err != nil {
|
|
| 522 | 521 |
t.Fatalf("Failed saving to file: %q", err)
|
| 523 | 522 |
} |
| 524 | 523 |
buf, err := ioutil.ReadFile(filepath.Join(tmpHome, ConfigFileName)) |
| 524 |
+ if err != nil {
|
|
| 525 |
+ t.Fatal(err) |
|
| 526 |
+ } |
|
| 525 | 527 |
|
| 526 | 528 |
expConfStr := `{
|
| 527 | 529 |
"auths": {
|
| ... | ... |
@@ -798,7 +798,6 @@ func parseRemappedRoot(usergrp string) (string, string, error) {
|
| 798 | 798 |
} |
| 799 | 799 |
return "", "", fmt.Errorf("Error during %q user creation: %v", defaultRemappedID, err)
|
| 800 | 800 |
} |
| 801 |
- userID = luser.Uid |
|
| 802 | 801 |
username = luser.Name |
| 803 | 802 |
if len(idparts) == 1 {
|
| 804 | 803 |
// we only have a string username, and no group specified; look up gid from username as group |
| ... | ... |
@@ -824,11 +823,9 @@ func parseRemappedRoot(usergrp string) (string, string, error) {
|
| 824 | 824 |
groupname = lgrp.Name |
| 825 | 825 |
} else {
|
| 826 | 826 |
// not a number; attempt a lookup |
| 827 |
- group, err := user.LookupGroup(idparts[1]) |
|
| 828 |
- if err != nil {
|
|
| 829 |
- return "", "", fmt.Errorf("Error during gid lookup for %q: %v", idparts[1], err)
|
|
| 827 |
+ if _, err := user.LookupGroup(idparts[1]); err != nil {
|
|
| 828 |
+ return "", "", fmt.Errorf("Error during groupname lookup for %q: %v", idparts[1], err)
|
|
| 830 | 829 |
} |
| 831 |
- groupID = group.Gid |
|
| 832 | 830 |
groupname = idparts[1] |
| 833 | 831 |
} |
| 834 | 832 |
} |
| ... | ... |
@@ -371,6 +371,10 @@ func (d *Driver) Get(id string, mountLabel string) (string, error) {
|
| 371 | 371 |
// chown "workdir/work" to the remapped root UID/GID. Overlay fs inside a |
| 372 | 372 |
// user namespace requires this to move a directory from lower to upper. |
| 373 | 373 |
rootUID, rootGID, err := idtools.GetRootUIDGID(d.uidMaps, d.gidMaps) |
| 374 |
+ if err != nil {
|
|
| 375 |
+ return "", err |
|
| 376 |
+ } |
|
| 377 |
+ |
|
| 374 | 378 |
if err := os.Chown(path.Join(workDir, "work"), rootUID, rootGID); err != nil {
|
| 375 | 379 |
return "", err |
| 376 | 380 |
} |
| ... | ... |
@@ -241,7 +241,7 @@ func (t *authZPluginTestServer) start() {
|
| 241 | 241 |
r.HandleFunc("/Plugin.Activate", t.activate)
|
| 242 | 242 |
r.HandleFunc("/"+AuthZApiRequest, t.auth)
|
| 243 | 243 |
r.HandleFunc("/"+AuthZApiResponse, t.auth)
|
| 244 |
- t.listener, err = net.Listen("tcp", pluginAddress)
|
|
| 244 |
+ t.listener, _ = net.Listen("tcp", pluginAddress)
|
|
| 245 | 245 |
server := http.Server{Handler: r, Addr: pluginAddress}
|
| 246 | 246 |
server.Serve(l) |
| 247 | 247 |
} |
| ... | ... |
@@ -168,6 +168,9 @@ func TestMoveToSubdir(t *testing.T) {
|
| 168 | 168 |
} |
| 169 | 169 |
// validate that the files were moved to the subdirectory |
| 170 | 170 |
infos, err := ioutil.ReadDir(subDir) |
| 171 |
+ if err != nil {
|
|
| 172 |
+ t.Fatal(err) |
|
| 173 |
+ } |
|
| 171 | 174 |
if len(infos) != 4 {
|
| 172 | 175 |
t.Fatalf("Should be four files in the subdir after the migration: actual length: %d", len(infos))
|
| 173 | 176 |
} |
| ... | ... |
@@ -5,17 +5,10 @@ package directory |
| 5 | 5 |
import ( |
| 6 | 6 |
"os" |
| 7 | 7 |
"path/filepath" |
| 8 |
- |
|
| 9 |
- "github.com/docker/docker/pkg/longpath" |
|
| 10 | 8 |
) |
| 11 | 9 |
|
| 12 | 10 |
// Size walks a directory tree and returns its total size in bytes. |
| 13 | 11 |
func Size(dir string) (size int64, err error) {
|
| 14 |
- fixedPath, err := filepath.Abs(dir) |
|
| 15 |
- if err != nil {
|
|
| 16 |
- return |
|
| 17 |
- } |
|
| 18 |
- fixedPath = longpath.AddPrefix(fixedPath) |
|
| 19 | 12 |
err = filepath.Walk(dir, func(d string, fileInfo os.FileInfo, e error) error {
|
| 20 | 13 |
// Ignore directory sizes |
| 21 | 14 |
if fileInfo == nil {
|
| ... | ... |
@@ -93,7 +93,7 @@ func (mj *JSONLog) MarshalJSONBuf(buf *bytes.Buffer) error {
|
| 93 | 93 |
ffjsonWriteJSONString(buf, mj.Log) |
| 94 | 94 |
} |
| 95 | 95 |
if len(mj.Stream) != 0 {
|
| 96 |
- if first == true {
|
|
| 96 |
+ if first {
|
|
| 97 | 97 |
first = false |
| 98 | 98 |
} else {
|
| 99 | 99 |
buf.WriteString(`,`) |
| ... | ... |
@@ -101,9 +101,7 @@ func (mj *JSONLog) MarshalJSONBuf(buf *bytes.Buffer) error {
|
| 101 | 101 |
buf.WriteString(`"stream":`) |
| 102 | 102 |
ffjsonWriteJSONString(buf, mj.Stream) |
| 103 | 103 |
} |
| 104 |
- if first == true {
|
|
| 105 |
- first = false |
|
| 106 |
- } else {
|
|
| 104 |
+ if !first {
|
|
| 107 | 105 |
buf.WriteString(`,`) |
| 108 | 106 |
} |
| 109 | 107 |
buf.WriteString(`"time":`) |
| ... | ... |
@@ -39,7 +39,7 @@ func (mj *JSONLogs) MarshalJSONBuf(buf *bytes.Buffer) error {
|
| 39 | 39 |
ffjsonWriteJSONString(buf, mj.Stream) |
| 40 | 40 |
} |
| 41 | 41 |
if len(mj.RawAttrs) > 0 {
|
| 42 |
- if first == true {
|
|
| 42 |
+ if first {
|
|
| 43 | 43 |
first = false |
| 44 | 44 |
} else {
|
| 45 | 45 |
buf.WriteString(`,`) |
| ... | ... |
@@ -47,9 +47,7 @@ func (mj *JSONLogs) MarshalJSONBuf(buf *bytes.Buffer) error {
|
| 47 | 47 |
buf.WriteString(`"attrs":`) |
| 48 | 48 |
buf.Write(mj.RawAttrs) |
| 49 | 49 |
} |
| 50 |
- if first == true {
|
|
| 51 |
- first = false |
|
| 52 |
- } else {
|
|
| 50 |
+ if !first {
|
|
| 53 | 51 |
buf.WriteString(`,`) |
| 54 | 52 |
} |
| 55 | 53 |
buf.WriteString(`"time":`) |
| ... | ... |
@@ -112,8 +112,7 @@ func TestBufioWriterPoolPutAndGet(t *testing.T) {
|
| 112 | 112 |
buf.Reset() |
| 113 | 113 |
BufioWriter32KPool.Put(writer) |
| 114 | 114 |
// Try to write something |
| 115 |
- written, err = writer.Write([]byte("barfoo"))
|
|
| 116 |
- if err != nil {
|
|
| 115 |
+ if _, err = writer.Write([]byte("barfoo")); err != nil {
|
|
| 117 | 116 |
t.Fatal(err) |
| 118 | 117 |
} |
| 119 | 118 |
// If we now try to flush it, it should panic (the writer is nil) |
| ... | ... |
@@ -23,8 +23,7 @@ func toShort(path string) (string, error) {
|
| 23 | 23 |
} |
| 24 | 24 |
if n > uint32(len(b)) {
|
| 25 | 25 |
b = make([]uint16, n) |
| 26 |
- n, err = syscall.GetShortPathName(&p[0], &b[0], uint32(len(b))) |
|
| 27 |
- if err != nil {
|
|
| 26 |
+ if _, err = syscall.GetShortPathName(&p[0], &b[0], uint32(len(b))); err != nil {
|
|
| 28 | 27 |
return "", err |
| 29 | 28 |
} |
| 30 | 29 |
} |
| ... | ... |
@@ -560,6 +560,10 @@ func Benchmark9kTar(b *testing.B) {
|
| 560 | 560 |
return |
| 561 | 561 |
} |
| 562 | 562 |
n, err := io.Copy(buf, fh) |
| 563 |
+ if err != nil {
|
|
| 564 |
+ b.Error(err) |
|
| 565 |
+ return |
|
| 566 |
+ } |
|
| 563 | 567 |
fh.Close() |
| 564 | 568 |
|
| 565 | 569 |
reader := bytes.NewReader(buf.Bytes()) |
| ... | ... |
@@ -586,6 +590,10 @@ func Benchmark9kTarGzip(b *testing.B) {
|
| 586 | 586 |
return |
| 587 | 587 |
} |
| 588 | 588 |
n, err := io.Copy(buf, fh) |
| 589 |
+ if err != nil {
|
|
| 590 |
+ b.Error(err) |
|
| 591 |
+ return |
|
| 592 |
+ } |
|
| 589 | 593 |
fh.Close() |
| 590 | 594 |
|
| 591 | 595 |
reader := bytes.NewReader(buf.Bytes()) |