fix signed overflow in ftok
[oweals/musl.git] / src / ipc / ftok.c
1 #include <sys/ipc.h>
2 #include <sys/stat.h>
3
4 key_t ftok(const char *path, int id)
5 {
6         struct stat st;
7         if (stat(path, &st) < 0) return -1;
8
9         return ((st.st_ino & 0xffff) | ((st.st_dev & 0xff) << 16) | ((id & 0xffu) << 24));
10 }