Ah yes, but still the if statement doesn't contribute anything:

```
log.Println("update: patching binary,", err)
```

vs

```
log.Println("update: fetching full binary,", err)
```

You'd get:

```
update: patching binary, new file hash mismatch after patch
```

or

```
update: fetching full binary, new file hash mismatch after patch
```


(As a matter of style, I'd suggest changing the ErrHashMismatch
value to "hash mismatch", which seems to say enough.)