ipc: WARN if trying to remove ipc object which is absent
[sfrench/cifs-2.6.git] / ipc / util.c
index d48d8cfa1f3fa3d37dd190d38211f69b5c00e4eb..fa2d86ef3fb80b1a828043190a69f8c935715354 100644 (file)
@@ -447,8 +447,8 @@ static int ipcget_public(struct ipc_namespace *ns, struct ipc_ids *ids,
 static void ipc_kht_remove(struct ipc_ids *ids, struct kern_ipc_perm *ipcp)
 {
        if (ipcp->key != IPC_PRIVATE)
-               rhashtable_remove_fast(&ids->key_ht, &ipcp->khtnode,
-                                      ipc_kht_params);
+               WARN_ON_ONCE(rhashtable_remove_fast(&ids->key_ht, &ipcp->khtnode,
+                                      ipc_kht_params));
 }
 
 /**
@@ -498,7 +498,7 @@ void ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp)
 {
        int idx = ipcid_to_idx(ipcp->id);
 
-       idr_remove(&ids->ipcs_idr, idx);
+       WARN_ON_ONCE(idr_remove(&ids->ipcs_idr, idx) != ipcp);
        ipc_kht_remove(ids, ipcp);
        ids->in_use--;
        ipcp->deleted = true;