(linenum→info "unix/slp.c:2238")

openssl/0.9.8g/crypto/uid.c

    1: /* crypto/uid.c */
    2: /* ====================================================================
    3:  * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
    4:  *
    5:  * Redistribution and use in source and binary forms, with or without
    6:  * modification, are permitted provided that the following conditions
    7:  * are met:
    8:  *
    9:  * 1. Redistributions of source code must retain the above copyright
   10:  *    notice, this list of conditions and the following disclaimer. 
   11:  *
   12:  * 2. Redistributions in binary form must reproduce the above copyright
   13:  *    notice, this list of conditions and the following disclaimer in
   14:  *    the documentation and/or other materials provided with the
   15:  *    distribution.
   16:  *
   17:  * 3. All advertising materials mentioning features or use of this
   18:  *    software must display the following acknowledgment:
   19:  *    "This product includes software developed by the OpenSSL Project
   20:  *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
   21:  *
   22:  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
   23:  *    endorse or promote products derived from this software without
   24:  *    prior written permission. For written permission, please contact
   25:  *    licensing@OpenSSL.org.
   26:  *
   27:  * 5. Products derived from this software may not be called "OpenSSL"
   28:  *    nor may "OpenSSL" appear in their names without prior written
   29:  *    permission of the OpenSSL Project.
   30:  *
   31:  * 6. Redistributions of any form whatsoever must retain the following
   32:  *    acknowledgment:
   33:  *    "This product includes software developed by the OpenSSL Project
   34:  *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
   35:  *
   36:  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
   37:  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   38:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   39:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
   40:  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   41:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   42:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   43:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   44:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   45:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   46:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   47:  * OF THE POSSIBILITY OF SUCH DAMAGE.
   48:  * ====================================================================
   49:  *
   50:  * This product includes cryptographic software written by Eric Young
   51:  * (eay@cryptsoft.com).  This product includes software written by Tim
   52:  * Hudson (tjh@cryptsoft.com).
   53:  *
   54:  */
   55: 
   56: #include <openssl/crypto.h>
   57: #include <openssl/opensslconf.h>
   58: 
   59: #if defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2)
   60: 
   61: #include OPENSSL_UNISTD
   62: 
   63: int OPENSSL_issetugid(void)
   64:         {
   65:         return issetugid();
   66:         }
   67: 
   68: #elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)
   69: 
   70: int OPENSSL_issetugid(void)
   71:         {
   72:         return 0;
   73:         }
   74: 
   75: #else
   76: 
   77: #include OPENSSL_UNISTD
   78: #include <sys/types.h>
   79: 
   80: int OPENSSL_issetugid(void)
   81:         {
   82:         if (getuid() != geteuid()) return 1;
   83:         if (getgid() != getegid()) return 1;
   84:         return 0;
   85:         }
   86: #endif
   87: 
   88: 
   89: 
Syntax (Markdown)