From 567b8dc9bae4f5a83bacfccc310376ffc27d7ae8 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 20 Apr 2016 11:54:31 +0200 Subject: [PATCH 2/2] IFP: Do not crash on invalid arguments to GetUserAttr --- src/responder/ifp/ifpsrv_cmd.c | 8 +++++--- src/sbus/sssd_dbus_request.c | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/responder/ifp/ifpsrv_cmd.c b/src/responder/ifp/ifpsrv_cmd.c index 399e83e0255700df5a24491a3eb33b4f92040ca7..b1e8f80f22d535b5e2579ac25b39b61b0fa5b33b 100644 --- a/src/responder/ifp/ifpsrv_cmd.c +++ b/src/responder/ifp/ifpsrv_cmd.c @@ -82,8 +82,10 @@ int ifp_user_get_attr(struct sbus_request *dbus_req, void *data) attr_req->ireq = ireq; ret = ifp_user_get_attr_unpack_msg(attr_req); - if (ret != EOK) { - return ret; /* handled internally */ + if (ret == ERR_SBUS_REQUEST_HANDLED) { + return EOK; /* handled internally */ + } else if (ret != EOK) { + return ret; /* internal error */ } DEBUG(SSSDBG_FUNC_DATA, @@ -117,7 +119,7 @@ ifp_user_get_attr_unpack_msg(struct ifp_attr_req *attr_req) DBUS_TYPE_INVALID); if (parsed == false) { DEBUG(SSSDBG_OP_FAILURE, "Could not parse arguments\n"); - return EOK; /* handled */ + return ERR_SBUS_REQUEST_HANDLED; } /* Copy the attributes to maintain memory hierarchy with talloc */ diff --git a/src/sbus/sssd_dbus_request.c b/src/sbus/sssd_dbus_request.c index aa57f6b6587183a9edd7764d123e82b01b5f6070..c71a79b1f06c92c25f8bb836b5bf815c056d3912 100644 --- a/src/sbus/sssd_dbus_request.c +++ b/src/sbus/sssd_dbus_request.c @@ -74,6 +74,7 @@ sbus_request_invoke_or_finish(struct sbus_request *dbus_req, } switch(ret) { + case ERR_SBUS_REQUEST_HANDLED: case EOK: return; case ENOMEM: -- 2.4.11