RE: [PATCH] ibacm/acme.c: Eliminate seg fault when source not supplied

Hefty, Sean
2012-06-01T00:04:13Z

> diff --git a/src/acme.c b/src/acme.c
> index d3f8174..533588c 100644
> --- a/src/acme.c
> +++ b/src/acme.c
> @@ -618,12 +618,18 @@ static void resolve(char *svc)
> ret = resolve_name(&path);
> break;
> case 'l':
> - memset(&path, 0, sizeof path);
> - ret = resolve_lid(&path);
> + if (src_addr) {
> + memset(&path, 0, sizeof path);
> + ret = resolve_lid(&path);
> + } else
> + ret = -1;
> break;
> case 'g':
> - memset(&path, 0, sizeof path);
> - ret = resolve_gid(&path);
> + if (src_addr) {
> + memset(&path, 0, sizeof path);
> + ret = resolve_gid(&path);
> + } else
> + ret = -1;
> break;
> default:
> break;

Thanks.

For this problem, I'd prefer to check for a NULL src_addr in resolve_lid and resolve_gid. The ibacm service could then select a SLID/SGID based on the specified DLID/DGID. This makes things easier for the user.

But until ibacm handles a 0 SLID/SGID, have ib_acme provide a more usable failure message.

I can make this patch if this sounds workable to you.

- Sean