Reorder DIR structure due to bad apps.

It turns out that apportable apps expect that the DIR structure is
the same as in L and below. Modify the structure to have the same
order, and move the new variable to the end of the structure.

Bug: 21037208
Change-Id: Id1258e9dc19423109a2c3a8086d3022965591166
This commit is contained in:
Christopher Ferris 2015-06-04 13:30:45 -07:00
parent 0c29aabad2
commit 5edb0f40f6

View File

@ -41,13 +41,19 @@
extern "C" int __getdents64(unsigned int, dirent*, unsigned int);
// Apportable decided to copy the data structure from this file
// and use it in their own code, but they also call into readdir.
// In order to avoid a lockup, the structure must be maintained in
// the exact same order as in L and below. New structure members
// need to be added to the end of this structure.
// See b/21037208 for more details.
struct DIR {
int fd_;
size_t available_bytes_;
dirent* next_;
long current_pos_;
pthread_mutex_t mutex_;
dirent buff_[15];
long current_pos_;
};
static DIR* __allocate_DIR(int fd) {