[Jack-Devel] Netjack crashes, alignment broken recently

Stéphane Letz letz at grame.fr
Fri Mar 11 12:17:50 CET 2016


Le 11 mars 2016 à 12:05, Filipe Coelho <falktx at gmail.com> a écrit :

> On 10.03.2016 18:41, Xavier Mendez wrote:
>> Just compiled the latest jackd2, and when using Netjack both manager and driver crash after sending parameters. I traced back to this change from 02f74a659, which modifies the network parameter struct:
>> 
>> --- a/common/JackNetTool.h
>> +++ b/common/JackNetTool.h
>> @@ -94,9 +94,9 @@ namespace Jack
>> -        char fName[JACK_CLIENT_NAME_SIZE];
>> -        char fMasterNetName[JACK_SERVER_NAME_SIZE];
>> -        char fSlaveNetName[JACK_SERVER_NAME_SIZE];
>> +        char fName[JACK_CLIENT_NAME_SIZE+1];
>> +        char fMasterNetName[JACK_SERVER_NAME_SIZE+1];
>> +        char fSlaveNetName[JACK_SERVER_NAME_SIZE+1];
>> 
>> That extra byte for the NUL terminator breaks the alignment, and somehow causes some ints to be sent as little-endian:
>> 
>>    Sample rate : 12288000 frames per second
>>    Period size : 131072 frames per period
>> 
>> Reverting the three lines seems to resolve the problem. I don't really see the use for having the NUL terminator go through the network...
>> 
>> What do you think?
> 
> I can confirm this is an issue for me.
> The "-d net" option stopped working some time ago and I've been wondering why, that change seems to be the reason.
> 
> Reverting it in both client&server makes netmanager work again.
> 
> 
> Please do a pull request against jack2's github repo.
> That would be the fastest way to get this fixed upstream.
> 

It would be better to understand why changing the  data structure (which is used both side of the connection… ) caused the crash. Are you sure the code is correctly recompiled everywhere?

Stéphane




More information about the Jackaudio mailing list