diff options
| author | Eli Zaretskii | 2008-05-03 10:11:22 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2008-05-03 10:11:22 +0000 |
| commit | 064032d03080c9f64ce5196a6f2664acdbeb95e4 (patch) | |
| tree | 74d779d6379096f3e581c9493381f8604da401d9 /src | |
| parent | 50eff40ff15b6349137bc9618d021495c72815af (diff) | |
| download | emacs-064032d03080c9f64ce5196a6f2664acdbeb95e4.tar.gz emacs-064032d03080c9f64ce5196a6f2664acdbeb95e4.zip | |
(Ffile_attributes): Don't allow the device number become negative.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/dired.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0849e9ee4b7..8efef814555 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2008-05-03 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * dired.c (Ffile_attributes): Don't allow the device number become | ||
| 4 | negative. | ||
| 5 | |||
| 1 | 2008-05-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 6 | 2008-05-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 2 | 7 | ||
| 3 | * config.in: Regenerate. | 8 | * config.in: Regenerate. |
diff --git a/src/dired.c b/src/dired.c index 31b7e19ddae..7936e04a54e 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -1048,8 +1048,11 @@ Elements of the attribute list are: | |||
| 1048 | /* But keep the most common cases as integers. */ | 1048 | /* But keep the most common cases as integers. */ |
| 1049 | values[10] = make_number (ino); | 1049 | values[10] = make_number (ino); |
| 1050 | 1050 | ||
| 1051 | /* Likewise for device. */ | 1051 | /* Likewise for device, but don't let it become negative. We used |
| 1052 | if (FIXNUM_OVERFLOW_P (s.st_dev)) | 1052 | to use FIXNUM_OVERFLOW_P here, but that won't catch large |
| 1053 | positive numbers such as 0xFFEEDDCC. */ | ||
| 1054 | if ((EMACS_INT)s.st_dev < 0 | ||
| 1055 | || (EMACS_INT)s.st_dev > MOST_POSITIVE_FIXNUM) | ||
| 1053 | values[11] = Fcons (make_number (s.st_dev >> 16), | 1056 | values[11] = Fcons (make_number (s.st_dev >> 16), |
| 1054 | make_number (s.st_dev & 0xffff)); | 1057 | make_number (s.st_dev & 0xffff)); |
| 1055 | else | 1058 | else |