char *ctx = NULL;
                u32 len;
 
-               rc = selinux_sid_to_string(sid, &ctx, &len);
+               rc = security_secid_to_secctx(sid, &ctx, &len);
                if (rc) {
                        audit_log_format(ab, " sid=%u", sid);
                        allow_changes = 0; /* Something weird, deny request */
                } else {
                        audit_log_format(ab, " subj=%s", ctx);
-                       kfree(ctx);
+                       security_release_secctx(ctx, len);
                }
        }
        audit_log_format(ab, " res=%d", allow_changes);
        audit_log_format(*ab, "user pid=%d uid=%u auid=%u",
                         pid, uid, auid);
        if (sid) {
-               rc = selinux_sid_to_string(sid, &ctx, &len);
+               rc = security_secid_to_secctx(sid, &ctx, &len);
                if (rc)
                        audit_log_format(*ab, " ssid=%u", sid);
-               else
+               else {
                        audit_log_format(*ab, " subj=%s", ctx);
-               kfree(ctx);
+                       security_release_secctx(ctx, len);
+               }
        }
 
        return rc;
                break;
        }
        case AUDIT_SIGNAL_INFO:
-               err = selinux_sid_to_string(audit_sig_sid, &ctx, &len);
+               err = security_secid_to_secctx(audit_sig_sid, &ctx, &len);
                if (err)
                        return err;
                sig_data = kmalloc(sizeof(*sig_data) + len, GFP_KERNEL);
                if (!sig_data) {
-                       kfree(ctx);
+                       security_release_secctx(ctx, len);
                        return -ENOMEM;
                }
                sig_data->uid = audit_sig_uid;
                sig_data->pid = audit_sig_pid;
                memcpy(sig_data->ctx, ctx, len);
-               kfree(ctx);
+               security_release_secctx(ctx, len);
                audit_send_reply(NETLINK_CB(skb).pid, seq, AUDIT_SIGNAL_INFO,
                                0, 0, sig_data, sizeof(*sig_data) + len);
                kfree(sig_data);
 
                           logged upon error */
                        if (f->se_rule) {
                                if (need_sid) {
-                                       selinux_get_task_sid(tsk, &sid);
+                                       security_task_getsecid(tsk, &sid);
                                        need_sid = 0;
                                }
                                result = selinux_audit_rule_match(sid, f->type,
        int error;
        u32 sid;
 
-       selinux_get_task_sid(current, &sid);
+       security_task_getsecid(current, &sid);
        if (!sid)
                return;
 
-       error = selinux_sid_to_string(sid, &ctx, &len);
+       error = security_secid_to_secctx(sid, &ctx, &len);
        if (error) {
                if (error != -EINVAL)
                        goto error_path;
        }
 
        audit_log_format(ab, " subj=%s", ctx);
-       kfree(ctx);
+       security_release_secctx(ctx, len);
        return;
 
 error_path:
                                 u32 sid, char *comm)
 {
        struct audit_buffer *ab;
-       char *s = NULL;
+       char *ctx = NULL;
        u32 len;
        int rc = 0;
 
 
        audit_log_format(ab, "opid=%d oauid=%d ouid=%d oses=%d", pid, auid,
                         uid, sessionid);
-       if (selinux_sid_to_string(sid, &s, &len)) {
+       if (security_secid_to_secctx(sid, &ctx, &len)) {
                audit_log_format(ab, " obj=(none)");
                rc = 1;
-       } else
-               audit_log_format(ab, " obj=%s", s);
+       } else {
+               audit_log_format(ab, " obj=%s", ctx);
+               security_release_secctx(ctx, len);
+       }
        audit_log_format(ab, " ocomm=");
        audit_log_untrustedstring(ab, comm);
        audit_log_end(ab);
-       kfree(s);
 
        return rc;
 }
                        if (axi->osid != 0) {
                                char *ctx = NULL;
                                u32 len;
-                               if (selinux_sid_to_string(
+                               if (security_secid_to_secctx(
                                                axi->osid, &ctx, &len)) {
                                        audit_log_format(ab, " osid=%u",
                                                        axi->osid);
                                        call_panic = 1;
-                               } else
+                               } else {
                                        audit_log_format(ab, " obj=%s", ctx);
-                               kfree(ctx);
+                                       security_release_secctx(ctx, len);
+                               }
                        }
                        break; }
 
                if (n->osid != 0) {
                        char *ctx = NULL;
                        u32 len;
-                       if (selinux_sid_to_string(
+                       if (security_secid_to_secctx(
                                n->osid, &ctx, &len)) {
                                audit_log_format(ab, " osid=%u", n->osid);
                                call_panic = 2;
-                       } else
+                       } else {
                                audit_log_format(ab, " obj=%s", ctx);
-                       kfree(ctx);
+                               security_release_secctx(ctx, len);
+                       }
                }
 
                audit_log_end(ab);
        name->uid   = inode->i_uid;
        name->gid   = inode->i_gid;
        name->rdev  = inode->i_rdev;
-       selinux_get_inode_sid(inode, &name->osid);
+       security_inode_getsecid(inode, &name->osid);
 }
 
 /**
        ax->uid = ipcp->uid;
        ax->gid = ipcp->gid;
        ax->mode = ipcp->mode;
-       selinux_get_ipc_sid(ipcp, &ax->osid);
-
+       security_ipc_getsecid(ipcp, &ax->osid);
        ax->d.type = AUDIT_IPC;
        ax->d.next = context->aux;
        context->aux = (void *)ax;
        context->target_auid = audit_get_loginuid(t);
        context->target_uid = t->uid;
        context->target_sessionid = audit_get_sessionid(t);
-       selinux_get_task_sid(t, &context->target_sid);
+       security_task_getsecid(t, &context->target_sid);
        memcpy(context->target_comm, t->comm, TASK_COMM_LEN);
 }
 
                                audit_sig_uid = tsk->loginuid;
                        else
                                audit_sig_uid = tsk->uid;
-                       selinux_get_task_sid(tsk, &audit_sig_sid);
+                       security_task_getsecid(tsk, &audit_sig_sid);
                }
                if (!audit_signals || audit_dummy_context())
                        return 0;
                ctx->target_auid = audit_get_loginuid(t);
                ctx->target_uid = t->uid;
                ctx->target_sessionid = audit_get_sessionid(t);
-               selinux_get_task_sid(t, &ctx->target_sid);
+               security_task_getsecid(t, &ctx->target_sid);
                memcpy(ctx->target_comm, t->comm, TASK_COMM_LEN);
                return 0;
        }
        axp->target_auid[axp->pid_count] = audit_get_loginuid(t);
        axp->target_uid[axp->pid_count] = t->uid;
        axp->target_sessionid[axp->pid_count] = audit_get_sessionid(t);
-       selinux_get_task_sid(t, &axp->target_sid[axp->pid_count]);
+       security_task_getsecid(t, &axp->target_sid[axp->pid_count]);
        memcpy(axp->target_comm[axp->pid_count], t->comm, TASK_COMM_LEN);
        axp->pid_count++;
 
        ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND);
        audit_log_format(ab, "auid=%u uid=%u gid=%u ses=%u",
                        auid, current->uid, current->gid, sessionid);
-       selinux_get_task_sid(current, &sid);
+       security_task_getsecid(current, &sid);
        if (sid) {
                char *ctx = NULL;
                u32 len;
 
-               if (selinux_sid_to_string(sid, &ctx, &len))
+               if (security_secid_to_secctx(sid, &ctx, &len))
                        audit_log_format(ab, " ssid=%u", sid);
-               else
+               else {
                        audit_log_format(ab, " subj=%s", ctx);
-               kfree(ctx);
+                       security_release_secctx(ctx, len);
+               }
        }
        audit_log_format(ab, " pid=%d comm=", current->pid);
        audit_log_untrustedstring(ab, current->comm);