touch, rm, cpsi, init: Fix initialization of para_buffer.
authorAndre Noll <maan@tuebingen.mpg.de>
Tue, 7 Apr 2015 23:56:11 +0000 (23:56 +0000)
committerAndre Noll <maan@tuebingen.mpg.de>
Tue, 21 Apr 2015 07:03:51 +0000 (09:03 +0200)
commit0e75bc32026c5c43fa36e93e82d8b34f89342170
tree1c3ef2b8d9f1727cc02c04ff298ad7b666dd1285
parent3b59239f650cf04bd07223539228b4a37e615dab
touch, rm, cpsi, init: Fix initialization of para_buffer.

Three years ago, in commit 68cb0aef (Introduce
afs_max_size_handler_data and afs_max_size_handler()) the afs callbacks
were converted to pass a pointer to an afs_max_size_handler_data
structure to the dispatcher. This structure is defined as

struct afs_max_size_handler_data {
int fd;
uint8_t band;
};

However, we missed to convert the callbacks of the three commands
mentioned in the subject. All these commands except init pass
a pointer to an int as they did before commit 68cb0aef. Since
afs_max_size_handler_data stores one additional byte (the band
designator) after the file descriptor, the dispatcher will read one
byte past the allocated space.

This bug is benign because the max size handler is usually not called
for the affected commands, since they never have more than SHMMAX
bytes of output. For com_init() we even set the private_data pointer
to NULL, so the max size handler will never be called.

Let's fix it anyway.
afs.c
aft.c