Project

General

Profile

Actions

Bug #13995

closed

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

Added by Hans Rosenfeld about 2 years ago. Updated about 2 years ago.

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

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

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 #1

Updated by Electric Monk about 2 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 80d556f9fa4f5a4857a6619909d286fb17e240f7

commit  80d556f9fa4f5a4857a6619909d286fb17e240f7
Author: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Date:   2021-09-03T19:14:57.000Z

    13995 libipmp <--> in.mpathd communication not 64bit safe
    Reviewed by: Robert Mustacchi <rm+illumos@fingolfin.org>
    Reviewed by: Gordon Ross <Gordon.W.Ross@gmail.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF