diff options
author | 2013-08-05 17:00:34 +0000 | |
---|---|---|
committer | 2013-08-05 17:00:34 +0000 | |
commit | f9b6c11a8e9cf8202f168925faac302246b513f6 (patch) | |
tree | 092de299b45dbb5f3ee18e49a3b88b0a352fd6b4 | |
parent | Remove useless line in CPPFLAGS. (diff) | |
download | wireguard-openbsd-f9b6c11a8e9cf8202f168925faac302246b513f6.tar.xz wireguard-openbsd-f9b6c11a8e9cf8202f168925faac302246b513f6.zip |
Don't assume inode numbers fit in a long
ok kettenis@
-rw-r--r-- | usr.sbin/httpd/src/modules/experimental/mod_mmap_static.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/usr.sbin/httpd/src/modules/experimental/mod_mmap_static.c b/usr.sbin/httpd/src/modules/experimental/mod_mmap_static.c index 439a915e611..7aa901d96d1 100644 --- a/usr.sbin/httpd/src/modules/experimental/mod_mmap_static.c +++ b/usr.sbin/httpd/src/modules/experimental/mod_mmap_static.c @@ -233,13 +233,14 @@ static int inode_compare(const void *av, const void *bv) { const a_file *a = *(a_file **)av; const a_file *b = *(a_file **)bv; - long c; - c = a->finfo.st_ino - b->finfo.st_ino; - if (c == 0) { - return a->finfo.st_dev - b->finfo.st_dev; - } - return c; + if (a->finfo.st_ino < b->finfo.st_ino) + return -1; + if (a->finfo.st_ino > b->finfo.st_ino) + return 1; + if (a->finfo.st_dev < b->finfo.st_dev) + return -1; + return a->finfo.st_dev > b->finfo.st_dev; } static void mmap_init(server_rec *s, pool *p) |