Project

General

Profile

Actions

Bug #13995

closed

libipmp <--> in.mpathd communication not 64bit safe

Added by Hans Rosenfeld 11 months ago. Updated 10 months ago.

Status:
Closed
Priority:
Normal
Category:
lib - userland libraries
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

libipmp and in.mpathd communicate by copying structs and arrays comprising the IPMP state across a TCP socket. The in.mpathd daemon is always built as 32bit, and when building a 64bit libipmp it will just fail to communicate correctly. The same problem would arise would we build in.mpathd as 64bit without also changing all libipmp consumers to 64bit at the same time.

I didn't want to completely change the way libipmp and in.mpathd communicate, like changing it to pass nvlists across a door. Instead I added explicit padding to some of the data structures, and for the more complicated cases I added bitness-independent duplicates of data structures to be used for sending and receiving data.

I tested this by setting up IPMP over two vnics in a zone and running both a 32bit and 64bit ipmpstat.

Actions

Also available in: Atom PDF