diff options
| author | Jeff King <peff@peff.net> | 2015-05-28 04:03:01 -0400 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2015-05-28 11:34:06 -0700 |
| commit | 0e8771f1984c468b0f41a8c779c034ffc48530e5 (patch) | |
| tree | 34eee68c0e2ccf112c35efb8415ac975f4ba4fa8 | |
| parent | config.c: avoid xmmap error messages (diff) | |
| download | git-0e8771f1984c468b0f41a8c779c034ffc48530e5.tar.gz git-0e8771f1984c468b0f41a8c779c034ffc48530e5.zip | |
config.c: rewrite ENODEV into EISDIR when mmap fails
If we try to mmap a directory, we'll get ENODEV. This
translates to "no such device" for the user, which is not
very helpful. Since we've just fstat()'d the file, we can
easily check whether the problem was a directory to give a
better message.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | config.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -2051,6 +2051,8 @@ int git_config_set_multivar_in_file(const char *config_filename, contents = xmmap_gently(NULL, contents_sz, PROT_READ, MAP_PRIVATE, in_fd, 0); if (contents == MAP_FAILED) { + if (errno == ENODEV && S_ISDIR(st.st_mode)) + errno = EISDIR; error("unable to mmap '%s': %s", config_filename, strerror(errno)); ret = CONFIG_INVALID_FILE; |
