aboutsummaryrefslogtreecommitdiffstats
path: root/src/dired.c
diff options
context:
space:
mode:
authorEli Zaretskii2008-05-03 10:17:22 +0000
committerEli Zaretskii2008-05-03 10:17:22 +0000
commit7412d4290304cd6debddc704fa4a758687587d4c (patch)
tree4aa75d568a71c3faed7e68f458a6feb4a48b22e7 /src/dired.c
parent83affd963e63d0e177e34f542064f2402cc97b39 (diff)
downloademacs-7412d4290304cd6debddc704fa4a758687587d4c.tar.gz
emacs-7412d4290304cd6debddc704fa4a758687587d4c.zip
(Ffile_attributes): Don't allow the device number become negative.
Diffstat (limited to 'src/dired.c')
-rw-r--r--src/dired.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dired.c b/src/dired.c
index e11c37ca5b7..d3a6e7b7cec 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -1048,8 +1048,11 @@ Elements of the attribute list are:
1048 make_number (low_ino & 0xffff))); 1048 make_number (low_ino & 0xffff)));
1049 } 1049 }
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