Skip to content

Commit

Permalink
Use dev_t for device id (st_dev) from stat in setup_git_directory_gen…
Browse files Browse the repository at this point in the history
…tly()

The original declaration was int, which seems to cause trouble on my
machine.  It causes spurious "filesystem boundary" errors when running
the testsuite.  The cause seems to be

  $ stat -c%d .
  2147549952

which is too large for a 32-bit int type.

Using the correct type, dev_t, solves the issue.  (Because I'm
paranoid and forgetful, I checked -- yes, Unix v7 had dev_t.)

Other uses of st_dev seem to be reasonably safe.   fill_stat_cache_info
truncates it to an 'unsigned int', but that value seems to be used only
to validate the cache, and only if USE_STDEV is defined.

Signed-off-by: Raja R Harinath <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
harinath authored and gitster committed Jul 14, 2010
1 parent 449aeb1 commit c7d1d1b
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,8 @@ const char *setup_git_directory_gently(int *nongit_ok)
const char *gitdirenv;
const char *gitfile_dir;
int len, offset, ceil_offset, root_len;
int current_device = 0, one_filesystem = 1;
dev_t current_device = 0;
int one_filesystem = 1;
struct stat buf;

/*
Expand Down

0 comments on commit c7d1d1b

Please sign in to comment.