25 #include "dbus-credentials.h" 
   26 #include "dbus-internals.h" 
   53   char *linux_security_label;
 
   82   creds->windows_sid = 
NULL;
 
   83   creds->linux_security_label = 
NULL;
 
   84   creds->adt_audit_data = 
NULL;
 
   85   creds->adt_audit_data_size = 0;
 
  121   credentials->refcount += 1;
 
  134   credentials->refcount -= 1;
 
  135   if (credentials->refcount == 0)
 
  138       dbus_free (credentials->linux_security_label);
 
  155   credentials->pid = pid;
 
  170   credentials->unix_uid = uid;
 
  184                                    const char         *windows_sid)
 
  193   credentials->windows_sid = copy;
 
  216   dbus_free (credentials->linux_security_label);
 
  217   credentials->linux_security_label = copy;
 
  241   credentials->adt_audit_data = copy;
 
  242   credentials->adt_audit_data_size = size;
 
  256                            DBusCredentialType  type)
 
  260     case DBUS_CREDENTIAL_UNIX_PROCESS_ID:
 
  262     case DBUS_CREDENTIAL_UNIX_USER_ID:
 
  264     case DBUS_CREDENTIAL_WINDOWS_SID:
 
  265       return credentials->windows_sid != 
NULL;
 
  266     case DBUS_CREDENTIAL_LINUX_SECURITY_LABEL:
 
  267       return credentials->linux_security_label != 
NULL;
 
  268     case DBUS_CREDENTIAL_ADT_AUDIT_DATA_ID:
 
  269       return credentials->adt_audit_data != 
NULL;
 
  286   return credentials->pid;
 
  299   return credentials->unix_uid;
 
  312   return credentials->windows_sid;
 
  325   return credentials->linux_security_label;
 
  338   return credentials->adt_audit_data;
 
  351   return credentials->adt_audit_data_size;
 
  368      possible_subset->pid == credentials->pid) &&
 
  370      possible_subset->unix_uid == credentials->unix_uid) &&
 
  371     (possible_subset->windows_sid == 
NULL ||
 
  372      (credentials->windows_sid && strcmp (possible_subset->windows_sid,
 
  373                                           credentials->windows_sid) == 0)) &&
 
  374     (possible_subset->linux_security_label == 
NULL ||
 
  375      (credentials->linux_security_label != 
NULL &&
 
  376       strcmp (possible_subset->linux_security_label,
 
  377               credentials->linux_security_label) == 0)) &&
 
  378     (possible_subset->adt_audit_data == 
NULL ||
 
  379      (credentials->adt_audit_data && memcmp (possible_subset->adt_audit_data,
 
  380                                              credentials->adt_audit_data,
 
  381                                              credentials->adt_audit_data_size) == 0));
 
  396     credentials->windows_sid == 
NULL &&
 
  397     credentials->linux_security_label == 
NULL &&
 
  398     credentials->adt_audit_data == 
NULL;
 
  412     credentials->windows_sid == 
NULL;
 
  429                                       DBUS_CREDENTIAL_UNIX_PROCESS_ID,
 
  430                                       other_credentials) &&
 
  432                                       DBUS_CREDENTIAL_UNIX_USER_ID,
 
  433                                       other_credentials) &&
 
  435                                       DBUS_CREDENTIAL_ADT_AUDIT_DATA_ID,
 
  436                                       other_credentials) &&
 
  438                                       DBUS_CREDENTIAL_LINUX_SECURITY_LABEL,
 
  439                                       other_credentials) &&
 
  441                                       DBUS_CREDENTIAL_WINDOWS_SID,
 
  459                                   DBusCredentialType  which,
 
  462   if (which == DBUS_CREDENTIAL_UNIX_PROCESS_ID &&
 
  468   else if (which == DBUS_CREDENTIAL_UNIX_USER_ID &&
 
  474   else if (which == DBUS_CREDENTIAL_WINDOWS_SID &&
 
  475            other_credentials->windows_sid != 
NULL)
 
  480   else if (which == DBUS_CREDENTIAL_LINUX_SECURITY_LABEL &&
 
  481            other_credentials->linux_security_label != 
NULL)
 
  484             other_credentials->linux_security_label))
 
  487   else if (which == DBUS_CREDENTIAL_ADT_AUDIT_DATA_ID &&
 
  488            other_credentials->adt_audit_data != 
NULL) 
 
  508   credentials->windows_sid = 
NULL;
 
  509   dbus_free (credentials->linux_security_label);
 
  510   credentials->linux_security_label = 
NULL;
 
  512   credentials->adt_audit_data = 
NULL;
 
  513   credentials->adt_audit_data_size = 0;
 
  558   return credentials->unix_uid == other_credentials->unix_uid &&
 
  559     ((!(credentials->windows_sid || other_credentials->windows_sid)) ||
 
  560      (credentials->windows_sid && other_credentials->windows_sid &&
 
  561       strcmp (credentials->windows_sid, other_credentials->windows_sid) == 0));
 
  593   if (credentials->windows_sid != 
NULL)
 
  602   if (credentials->linux_security_label != 
NULL)
 
  606                                        credentials->linux_security_label))