summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2013-08-05 17:00:34 +0000
committerguenther <guenther@openbsd.org>2013-08-05 17:00:34 +0000
commitf9b6c11a8e9cf8202f168925faac302246b513f6 (patch)
tree092de299b45dbb5f3ee18e49a3b88b0a352fd6b4
parentRemove useless line in CPPFLAGS. (diff)
downloadwireguard-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.c13
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)