Project

General

Profile

Bug #5914

pipe generates inodes with ino > 4G

Added by Arne Jansen about 4 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Start date:
2015-05-08
Due date:
% Done:

0%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage

Description

The pipe() syscall generates inode pairs with an arbitrary inode number. This number is simply generated by incrementing a counter on each call. After 4G pipe calls, the inode number can't be represented in 32 bits anymore. This causes 32 bit applications doing an fstat to fail with EOVERFLOW. I suggest to simply wrap the inode number at 32 bits.
In our case, it was the postfix mailq doing an fstat on its stdout that failed.

fifogetid() is the function that generates the inode number.

Also available in: Atom PDF