diff --git a/internal/diff/diff.go b/internal/diff/diff.go
index 09d3047..bc6b9a2 100644
--- a/internal/diff/diff.go
+++ b/internal/diff/diff.go
@@ -12,6 +12,22 @@
 	"runtime"
 )
 
+func writeTempFile(dir, prefix string, data []byte) (string, error) {
+	file, err := ioutil.TempFile(dir, prefix)
+	if err != nil {
+		return "", err
+	}
+	_, err = file.Write(data)
+	if err1 := file.Close(); err == nil {
+		err = err1
+	}
+	if err != nil {
+		os.Remove(file.Name())
+		return "", err
+	}
+	return file.Name(), nil
+}
+
 // Diff returns a human-readable description of the differences between s1 and s2.
 // If the "diff" command is available, it returns the output of unified diff on s1 and s2.
 // If the result is non-empty, the strings differ or the diff command failed.
@@ -22,29 +38,24 @@
 	if _, err := exec.LookPath("diff"); err != nil {
 		return fmt.Sprintf("diff command unavailable\nold: %q\nnew: %q", s1, s2)
 	}
-	f1, err := ioutil.TempFile("", "benchfmt_test")
+	f1, err := writeTempFile("", "benchfmt_test", []byte(s1))
 	if err != nil {
 		return err.Error()
 	}
-	defer os.Remove(f1.Name())
-	defer f1.Close()
+	defer os.Remove(f1)
 
-	f2, err := ioutil.TempFile("", "benchfmt_test")
+	f2, err := writeTempFile("", "benchfmt_test", []byte(s2))
 	if err != nil {
 		return err.Error()
 	}
-	defer os.Remove(f2.Name())
-	defer f2.Close()
-
-	f1.Write([]byte(s1))
-	f2.Write([]byte(s2))
+	defer os.Remove(f2)
 
 	cmd := "diff"
 	if runtime.GOOS == "plan9" {
 		cmd = "/bin/ape/diff"
 	}
 
-	data, err := exec.Command(cmd, "-u", f1.Name(), f2.Name()).CombinedOutput()
+	data, err := exec.Command(cmd, "-u", f1, f2).CombinedOutput()
 	if len(data) > 0 {
 		// diff exits with a non-zero status when the files don't match.
 		// Ignore that failure as long as we get output.
@@ -54,5 +65,4 @@
 		data = append(data, []byte(err.Error())...)
 	}
 	return string(data)
-
 }
