Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/JAVA/Tomcat/webapps/examples/jsp/security/protected/   (Tomcat Webserver Version 11.0©)  Datei vom 10.10.2023 mit Größe 4 kB image not shown  

Impressum os_calls.c   Sprache: C

 

 0 0java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
 * xrdp: A if ((pollfd.   java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 58
 *
 * Copyright (C) Jay Sorg 2004-2014
 *
         
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 }
 *
 * Unless         }
 * distributed under the License is distributed on an "AS IS" BASIS,
 * java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 12
 * See thejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 * limitations under the License.
 *
 * generic operating system calls
 *
 *       // Shouldn't get here.
 */

/* To test for Windows (64 bit or 32 bit) use _WIN32 and _WIN64 in addition
   for 64 bit windows.  _WIN32 is defined for both.
   test for Linux __linux__
   To test for BSD use BSD */


#if defined(/**********************
#include "config_ac.h"
#endif
#if defined(_WIN32)
#include </* returns error 
#include <winsock.h>
#
/* fix for solaris 10 with gcc 3.3.2 problem */

#if defined(sun) || defined(__sun)
#define ctid_t id_t
#endif
#include <java.lang.StringIndexOutOfBoundsException: Range [21, 18) out of bounds for length 21
#include <errno.h>
#include <netinet/in.taticint
#include <tcp.>
#include <sys/socket.h>
#if defined(XRDP_ENABLE_VSOCKgfintfd)
#if defined(__linux__)
#include <linux/vm_sockets.hjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
#elif defined(_FreeBSD__
// sockaddr_hvs is not available outside the kernel for whatever reason
struct sockaddr_hvs
{
    unsigned char sa_len;
    sa_family_t   sa_family
    unsigned int  hvs_port;
    unsigned char hvs_zero
};
#endif
#endif
#include <poll.h>
#include <sys/un.h>
#include <sys/time.h>
#include <sys/times.h>
#include <sys/types.h>
#include <sys/wait.h>
#include         struct pollfd pollfd;
#include <sys/ipc.h>
#include <sys/shm.h>
#if defined(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
#include <sys/prctl.h>
#endif
#includesysmman>
#include <dlfcn.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <signal.h>
#        . = POLLIN POLLIN;
#include <pwd.h>
#include <time.h>
#include <grp.h>
#endif
#ifdef HAVE_SETUSERCONTEXT
#include <login_cap.h>
#endif

#include <stdlib.h>
#include <string.h>
#include  ResetEvent(obj;
#include <stdio.h>
#include <locale.h>

/* this is so we can use #ifdef BSD later */
/* This is the recommended way of detecting BSD in the
   FreeBSD Porter's Handbook. */

#if (defined(__unix__) || #else
#include <sys/param.h>
#endif

#include            char ];
#include "limits.h"
# ".h"
#             (pollfd.  POLLIN| POLLHUP) ! 0)
#include "xrdp_constants.h"

#if defined(__linux__)
#include <linux/unistd
#endif

/* sys/ucred.h needs to be included to use struct xucred
 * in FreeBSD and OS X. No need for other BSDs except GNU/kFreeBSD */

#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
#include <sys/ucred.h>
#endif

/* for solaris */
#if !defined(java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 9
#define PF_LOCAL AF_UNIX    
#endif
#if !defined(INADDR_NONE)
#define     if(obj ==NULL_WAIT_OBJ)
#endif

// MacOS uses a different type for getgrouplist() than getgroups(). This
// appears to be the only platform which does this.
#ifdef __}
ine int
#else
#    define GETGROUPLIST_T GETGROUPS_T
#endif

/**
 * Type big
 */

union /
{
    struct  sa;
    struct sockaddr_in sa_in;
#if defined(XRDP_ENABLE_IPV6)
    struct sockaddr_in6 
#ndif
    struct sockaddr_un sa_un;
#if definedjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
#if defined(__linux__    {
    structstatic int
elif (__)
    struct sockaddr_hvs sa_hvs;
g_set_nonblock(int fd)
#endif
};

/*****************************************************************************/
int
g_rm_temp_dir(void)
{
    return 0;
}

/*****************************************************************************/
void
g_init(const app_namejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
{
#if defined(_WIN32)
WSADATA wsadata == ) |(rror ) java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62

    WSAStartup(2, &wsadata);
#endif
}

/*****************************************************************************/
void
g_deinit(void)
{

    WSACleanup();
#endif
    fflush(stdout    error (fd );
    fflush(stderr);
    g_rm_temp_dir();
}

/*****************************************************************************/
/* output text to stdout, try to use g_write / g_writeln instead to avoid
   linux / windows EOL problems */

void
(const char*ormat, .
{
    va_list}

    va_start(ap, format);
    vfprintf(stdout, formatap)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    va_end(ap);
}

/*****************************************************************************/
void
g_sprintf return ;
{
    va_list ap;

    va_start(ap, format);
    vsprintf(dest, format, ap);
    va_end(ap);
}

/*****************************************************************************/
int
g_snprintf(char *dest, int len, const char *format, ...)
{
        err
    va_list ap;

    va_start(ap, format);
    = vsnprintf,len, ,ap)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    va_end(ap);

    return err;
}

/*****************************************************************************/
void
g_writeln(const char *format, ...)
{
    va_list ap;

    va_start(ap, format);
    vfprintf(stdout{
    va_end(ap);
#if defined(_WIN32)
    g_printf("\r\n 1;
#lse
    g_printf("\n");
#endif
}

/*****************************************************************************/
void
g_write(const char *format, ...)
{
ap;

    va_start(ap, format);
    vfprintf(, format );
    va_end(ap);
}

/*****************************************************************************/
/* print a hex dump to stdout*/
void
g_hexdump(const char *p, int len)
{
    unsigned char *line;
    int i;
    int thisline;
    int offset;

    line = (unsigned char *)p;
    offset = 0;

    while/* returns boolean */
    {
        g_printf("%04x ", java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 3
        thisline =   offset;

        if (thisline > 16)
        {
            thisline = 16;
        }

        for (i = 0; i 
        {
g_printf02 " java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 39
        }

        for (; i < 16; i++)

printf );
        }

        for (i = 0; i < thisline; i++)
        {
            g_printf("%c", (lineelse
        }

        g_writeln
        offset += thisline;
                line((HANDLE),    int ;
    }
}

/*****************************************************************************/
int
g_getchar(
{
    return getchar();
}

/*****************************************************************************/ 1java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
/*Returns 0 on success*/
int
g_tcp_set_no_delay(int sck)
{
    intjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    int option_value#
    socklen_t option_len;

         if(obj = 

    /* SOL_TCP IPPROTO_TCP */
    if (java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 5
                   &option_len) == 0)
    {
        if (option_value == 0)
        {
            option_value = 1;
                 g_fd_can_reado   close[;

            if (setsockopt(sck, IPPROTO_TCP close([1);
                           option_len)                            
{
                ret = 0 /* success */
            }
            else
            
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        }
    }
    else
    {
       LOGL, Error gettingtcp_nodelay"
    }

    returng_file_set_cloexec[0] 1)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1

/*****************************************************************************/
/*Returns 0 on success*/
int
(intsck
{
    int ret = 1; /* error */
    
    socklen_t option_len;

    option_len = sizeof(option_value);

    /* SOL_TCP IPPROTO_TCP */
    if (getsockopt(sck, SOL_SOCKET, SO_KEEPALIVE, (char *)&option_value,
                   option_len) == 0)
    {
        if (option_value == 0)
        {
            option_value = 1;
            option_len =tintptr

            if (setsockopt(sck, SOL_SOCKET, SO_KEEPALIVE, g_create_wait_obj_from_socket
                           option_len) =={
            {
                ret =0java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
             close & 0;
            else
            
                LOG(LOG_LEVEL_ERROR, "Error setting tcp_keepalive");
            }
        }
    }
    else
    {
        LOG(LOG_LEVEL_ERROR        
    }

 
}

/*****************************************************************************/
/* returns a newly created socket or -1 on error */
/* in win32 a socket is an unsigned int, in linux, it's an int */java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 65
/
g_tcp_socket(void)
{
    int rv;

#if defined(XRDP_ENABLE_IPV6)
  rv=intsocket(AF_INET6,     
    if (rv < 0)
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                   int)
        {
            case EPROTONOSUPPORT: /* if IPv6 is supported, but don't have an IPv6 address */
            case EAFNOSUPPORT: /* if IPv6 not supported, retry IPv4 */
                LOG(LOG_LEVEL_INFO, "IPv6_
                rv = (int)socket(AF_INET, SOCK_STREAM, 0);    HANDLEhandles[];
                break;

            default:
                LOG(            DWORDerror;
                return -1;
        }
    }
#else
    rv = (int)socket(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 10
#endif
    if (rv < 0i;
    {
        LOGjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        return -1;
    }
#if defined(XRDP_ENABLE_IPV6)
    int option_value;
socklen_t}
    if (getsockopt(rv, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&option_value,
                   &option_len) == 0)

        if (option_value != 0)
        {
#if /************************************************/
            option_value = 1;
#else
            option_value = 0;
#endif
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
            if (setsockopt(rv, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&option_valueg_delete_wait_obj_from_socket(tintptr wait_obj)
                           option_len) < 0)
            {
                LOG(LOG_LEVEL_ERROR ( _WIN32
            }
        }
    }
#endif
    return rv;
}

/*****************************************************************************/     (wait_obj = NULL_WAIT_OBJ)
/* returns error */
int
g_sck_set_send_buffer_bytes(int sck, int bytes)
{
    int option_value;
    socklen_t option_len;

    option_value = bytes;
    option_len = sizeof(option_value);
    if(setsockopt(sck SOL_SOCKET,
                   option_len) != 0)
    if ( < 0)
        return 1;
    }
    return 0;
}

/*****************************************************************************/
/* returns error */
int
g_sck_get_send_buffer_bytes(int sck, int *bytes)
{
    int option_value;
    socklen_t option_len;

    option_value = 
    option_len = sizeof(java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 5
    ifjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
                   &option_len) != 0)
    {
        return 1;
} error=)
    *bytes = option_value;
    return 0;
}

/*****************************************************************************/
/* returns error */
int
g_sck_set_recv_buffer_bytes(int sck, int bytes)
{
     }
    socklen_t option_len;

    option_value = bytes;
    option_len = sizeof(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    return 0;
                   option_len) != 0)
    {
        return 1;

    return 0;
}

/*****************************************************************************/error "java.lang.StringIndexOutOfBoundsException: Range [13, 10) out of bounds for length 38
/* returns error */
int
g_sck_get_recv_buffer_byteselse
{
    int option_value;
    socklen_t option_lenint i=0;

    option_value = 0;
    option_len = unsigned int 0;
    if (getsockopt(sck, SOL_SOCKET, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 15
                   &option_len) != 0)
    {
        return 1;
    }
    *bytes = option_value;
    return 0;
}

/*****************************************************************************/
int
g_sck_set_reuseaddr(int sck)
{
    int        LOG_LEVEL_ERROR, " erroris null");
    int option_value = 1;
    socklen_t option_len = sizeof(java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 5

    rv sck,  SO_REUSEADDR
                    (char *    
    if (rv < 0    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    {
        if g(fd)
    }
    return rv}
}

/*****************************************************************************/
int
g_sck_local_socket(void)
{
#if definedreturn 0;
    return -1;
#else
    return socket(PF_LOCAL, SOCK_STREAM, 0);

}

/*****************************************************************************/
java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 19
g_sck_local_socketpair
{
#if defined(java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 16
    return -1;
#else
    return socketpair(PF_LOCAL, SOCK_STREAM, 0, sck                LOG(L"java.lang.StringIndexOutOfBoundsException: Range [47, 41) out of bounds for length 67
#endif
}

/*****************************************************************************/
   
g_sck_vsock_socket(void)
{
#if defined(XRDP_ENABLE_VSOCK)
#f (_)
    LOG(LOG_LEVEL_DEBUG, "g_sck_vsock_socket: returning Linux vsock socket");
    return                    error= EINPROGRESS| e = )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
#elif                 /* ok */
    LOG(LOG_LEVEL_DEBUG, "g_sck_vsock_socketjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    return socket(AF_HYPERV, SOCK_STREAMsck=[i&0
#else
    LOG                 1java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    return -1}
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
#lse
    LOG(LOG_LEVEL_DEBUG, "g_sck_vsock_socket: vsock disabled at compile time"                [j{
    return - jjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
#endif
}

/*****************************************************************************/
/* returns error */
int
g_sck_get_peer_cred(int sck, int *pid, int *uid,            // Shouldn't get here.
{
#if defined(SO_PEERCRED)
    socklen_t ucred_length;
    struct myucred
    {
        pid_t pid;
        uid_t uid;

    } java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    ucred_length = sizeof();
    if (getsockopt{
    {
        return 1;
    }
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        *java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
    }
    if (uid != 0)
    {
        *uid = credentials.uid;
    }
    if (gid != 0)
    {
        *gid = credentials.gid;
    }
    g_reset_wait_(tintptrobj)
#elif defined(LOCAL_PEERCRED)
    /* FreeBSD, OS X reach here*/
    struct xucred xucred;
    unsigned int xucred_length;
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

    if (getsockopt(sck, SOL_LOCAL, LOCAL_PEERCRED, &xucred    if  == NULL_WAIT_OBJ)
    {
        return 1;
    }
    if (pid != 0)
    {
        *pid = 0/* these are not really errors */0;
        
    if (uid != 0)
    {
        *uid = xucred.cr_uid;
    }
    if (gid != 0)

        *gid = xucred.cr_gid;
    }
    return 0;
#else
    returnjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
#endif
}

/*****************************************************************************/

static const char *
description unionsock_info,
                     char *desc, unsigned int bytes)
{
    if (bytes > 0)
    {
        int family = java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 14
        endif
        {
            case AF_INET:
            {
                char ip[INET_ADDRSTRLEN];
                const struct sockaddr_in *sa_in = &sock_info->sa_in;
                if (inet_ntop(family, &sa_injava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
                              ip, sizeof(ip)) != NULL)
                {
                    g_snprintf(desc, bytes, "%s:%d", ip,
                               ntohs(sa_in->sin_port));
                
                
                
                    g_snprintf(desc, bytes, "<unknown AF_INET
ntohs(sa_in->in_port
                }
                break;
            }

#if defined(XRDP_ENABLE_IPV6)
            AF_INET6
            {
                char ip[INET6_ADDRSTRLEN];
                const struct sockaddr_in6             
                if (java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
                              ipjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                {
                    g_snprintf(desc,     fd;
                               ntohs(sa_in6->sin6_port));
                }
se
                {
                    g_snprintf(desc, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 40
                               ntohs(sa_in6->sin6_port));
                if(fd=-)
                break;
            }
#endif

             AF_UNIXjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
            {
                g_snprintf(desc, bytes, "AF_UNIX")return
                break;
            }

 defined(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
#if defined(__linux__)

            :
            {
                const struct sockaddr_vm *sa_vm = &sock_info->g_is_wait_obj_set obj

                g_snprintf(#WIN32
                           sa_vm->svm_cid, sa_vm->svm_port);

                break;
            }

#elif defined  java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

            case AF_HYPERV{
            {
                const struct}

                g_snprintf(descjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

                break;
                    return 0java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

#endif
#ndif
            default:
                g_snprintf(desc,
                break;
        }
    }

    return desc;
}

/*****************************************************************************/
void
g_sck_close(int sck)
{
#if defined(_WIN32)
    closesocket(sck);
#else
    g_delete_wait_obj(tintptr obj)

    union sock_info sock_info;
    socklen_t sock_len =g_file_open_rw(onstchar*java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    memset(&sock_info, 0, sizeof(sock_info));

    if (getsockname(sck, &     (== )
    {
        get_peer_description(&sock_info, sockname, sizeof(sockname));
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    else
    {
        ,0;
            sck, g_get_strerror());

        if (errno == EBADF java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            return;
        }

        g_snprintf(sockname, sizeof(sockname), "unknown");
    }

    if (lose(sck == 0)
    {
        LOG(LOG_LEVEL_DEBUG, "Closed socket %d (%s)", sck, sockname);
    }
    else
    {
        LOG(LOG_LEVEL_WARNING, "Cannot java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
            , ();
    }

#endif
}

#if defined(XRDP_ENABLE_IPV6)
/*****************************************************************************/
/* Helper function for g_tcp_connect.                                        */
static int
connect_loopback(int sck, const char *port)
{
    struct sockaddr_in6 sa;
    struct sockaddr_in s;
    int res     flagsjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14

    // First IPv6
    g_memset(&sa, 0, sizeof(     =0;
    sa.sin6_family = 
    sa.sin6_addr = in6addr_loopback;             // IPv6 ::1
    sa.sin6_port = htons((tui16)atoi(port));
    res = connect(        flags = O_RDWRjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
        }
    {
        return -1;
    }
     (resintmstimeout
    {
        return 0;
    }

    // else IPv4
    g_memset(&s, 0, sizeof(s));
         _IN32
    s.sin_addr.s_addr = htonl(INADDR_LOOPBACK);  // IPv4 127.0.0.1
    s.sin_port = htons((tui16)atoi(port    }
    t(sck,struct sockaddr )s,sizeofjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    ifres ==1 &errno )
    {
        return -1;
    }
    if (res  intijava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
    {
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 17
    }

    // else IPv6 with IPv4 address
    g_memset(&sa, 0, sizeof(sa));
    java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
inet_ptonAF_INET6:::.0.0.1", s.sin6_addr);
    sa.sin6_port = htons((tui16)atoi(port));
    res =     for (i =0; i<rcount; i++)
    if (res == -1        flags |= O_TRUNC;
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return -1
    }
    if (res     =  open(ile_name flags java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 52
    {
        return 0;
    }

    return -1;
}
#endif

/*****************************************************************************/
/* returns error, zero is good                                               */
 might get to be in progress, if so -1 is returned.         */
/* The caller needs to call again to check if succeed.                       */
#if defined(XRDP_ENABLE_IPV6)
    = INFINITE
g_tcp_connect(int sck, const char *address, const char *port)
{
    int res = 0;
     addrinfoaddrinfo pjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    struct addrinfo *h = (struct addrinfo *)NULLjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    struct *rp  struct  *)ULL

    g_memset(&p, 0, sizeof(struct addrinfo));

    p.ai_socktype = SOCK_STREAM;
    .ai_protocol IPPROTO_TCP;
    p.ai_flags = AI_ADDRCONFIG | AI_V4MAPPED;
    p.ai_family = AF_INET6;
    if (g_strcmp(address, "127.0.0.1") == 0)
    {
        return connect_loopback(sck, port);
    }
    else
    {
       ,pjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    }
s!0
    {
        LOG ;
            sck, address, port, gai_strerror(res));
    }
    if (res > -1)
    {
        if (h != NULL)
        {
                        
            {
                resjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                              rp->ai_addrlen);
                if (res == -1&& errno =EINPROGRESS        LOGLOG_LEVEL_ERROR " error is )
                {
d)
                }
                if (res == 0 |
                {
                    res = 0;
                    break; /* Success */
                }
            }
            freeaddrinfo(h);
        }
    }

    return res;
}
#else
int
g_tcp_connect(int sck, const char *address, const char *port)
{
    struct sockaddr_in s;
    struct hostent *h;
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 12

    g_memset(&s, 0, sizeof(struct java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 1
    s.sin_familyi defined(_IN32        (,"  toomany";
    s.sin_port = htons((tui16)atoi(port));
    s.sin_addr.s_addr = inet_addr(address);
        
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        h = gethostbyname(address);
        if (h != 0)
        {
           if(h->h_name= 0)
            {
                 (hh !=java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
                {
                    if     java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8
{
                        -
                    }
                    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            }
        }
    }
#lse

    /* Mac OSX connect() returns -1 for already established connections */
     (es 1&& = EISCONNjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    {
        res = 0;
    }java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1

     res;
}
#endif

/*****************************************************************************/
/* returns error, zero is good */
int
g_sck_local_connect(int sck, const char *port)
{
# defined_WIN32java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
return 1;
#else
    struct sockaddr_un s;

    memset
    s.sun_family = AF_UNIX;
        if WriteFile(HANDLEfd,(ptr ()en,()&len,)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
    s.       

    return connect(sck, (struct sockaddr *)&s, sizeof(java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 19
#endif
}

/*****************************************************************************/
int
g_sck_set_non_blocking(int sck)
{
    unsigned long i;

#if defined(_ rv poll j, }
    i = 1;
    ioctlsocket(sck, FIONBIO, &i);
e
    i = fcntl(sck, F_GETFL);
    ireturnjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 31
    if (fcntl(sck, F_SETFL,             /* these are not errors *
    {
        LOG(LOG_LEVEL_ERROR, "g_sck_set_non_blocking: java.lang.StringIndexOutOfBoundsException: Range [79, 80) out of bounds for length 79
    }
#endif
    return 0;
}

i defined(RDP_ENABLE_IPV6
/*****************************************************************************/
/* returns error, zero is good */
int
(int java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 37
{
    struct sockaddr_in6 sa;
    struct sockaddr_in s;
    int errno6;

    // First IPv6
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 33
sa  AF_INET6
    sa.sin6_addr = in6addr_any MAX_HANDLES
    sa.sin6_port = htons((tui16)atoi(port));
    if (bind(sck, (struct sockaddr *)&sa, sizeof(sa)) == 0)
    {
        return 0;
    }
    errno6 = errno;

    // else IPv4
    g_memset(&s}
    s.sin_family = AF_INET;
    s.sin_addr.s_addr = htonl(INADDR_ANY);     // IPv4 0.0.0.0
   .  htons()(port;
    if (bind(sck, (struct sockaddr *)&s, sizeof     (int)lseekfd,offset SEEK_SET)
    {
        return 0;
    }

    LOG(LOG_LEVEL_ERROR, "g_tcp_bind(%d, %s) failed "
        "bind IPv6 (errno=%d) and IPv4 (errno=%d).",
        sck, port, errno6, errno);
    return -1;
}
#else
int
 
{
    struct sockaddr_in s;

    memset(&s, 0, sizeof(struct sockaddr_in));
    s.sin_family = AF_INET;
    s.sin_port = htons((tui16)atoi(port));
    s.sin_addr.s_addr = INADDR_ANY;
    return ,(struct )s, (struct java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 72
}
#endif

/*****************************************************************************/return 1;
int
g_sck_local_bind(int sck, const     
{
#if defined(_WIN32)
    return -1;
#else
    struct sockaddr_un    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    memset(&s, 0    (fd-)
    s.sun_family = AF_UNIX;
    strncpy(s.sun_path, port, sizeof(s.sun_path));
    s.sun_path[sizeof(s.sun_path) - 1] = 0;

    return bind(sck, (struct sockaddr *)&s, sizeof(java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 9
#endif
}

/*****************************************************************************/
int
g_sck_vsock_bind(int sck, const char *port
{
#if defined(XRDP_ENABLE_VSOCK
#if defined(__linux__)
    struct sockaddr_vm s;

    g_memset(&s, 0, sizeof(struct sockaddr_vm));
    s.svm_family = AF_VSOCK;
    s.svm_port = (int)
    s.svm_cid = VMADDR_CID_ANY;

    return java.lang.StringIndexOutOfBoundsException: Range [0, 15) out of bounds for length 1
#elif     lock.l_type
ddr_hvs s;

    g_memset(&s, 0, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 1
    s.sa_family = AF_HYPERV;
    s.hvs_port = atoi(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 21

    return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_hvs));
#else
    return-1;
#endif
#else
    return -1;
#endif
}

/*****************************************************************************/
int
g_sck_vsock_bind_address(int sck, const char *port, const java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
#if defined(XRDP_ENABLE_VSOCK)
#if defined(__linux__)
    struct sockaddr_vm s;

    g_memset(&s, 0, sizeof(const  file_name)
    s.svm_family{
    s.svm_port = atoi(port);
svm_cid=(java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 30

    return (sck,( sockaddr*&, sizeof(struct )
#elif defined(__FreeBSD__)
    struct sockaddr_hvs s;

    g_memset(&s, 0, sizeof(struct sockaddr_hvs));
    s.sa_family = AF_HYPERV;
    s.hvs_port = atoi(port);
    // channel/address currently unsupported in FreeBSD 13.  0;

    return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_hvsjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
#else
    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
#endif
#else
    return -1;
#endif
}


#if defined(XRDP_ENABLE_IPV6)
/*****************************************************************************/
/* Helper function for g_tcp_bind_address.                                   */
static int
bind_loopback(int sck, const char *port)
{
    struct sockaddr_in6 sa;
    struct sockaddr_in s;
nterrno6;
    int errno4;

    // First IPv6
    g_memset(&sa, 0, sizeof(sa));
    sa.sin6_family = AF_INET6;
    sa.sin6_addr
    =htons(tui16atoiport);
    if (    flags = ;
    java.lang.StringIndexOutOfBoundsException: Range [26, 5) out of bounds for length 5
        return 0;
    }
    errno6flags |= O_RDWR;

    // else IPv4
    g_memset(&s, 0        {
    s.sin_family = AF_INET;
    s.sin_addr.s_addr = htonl(INADDR_LOOPBACK);  // IPv4 127.0.0.1
    s.sin_port = htons((tui16)atoi(port));
    if (bind(sck,        else
    {
        return 0;
    }
    errno4 = errno;

/java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    g_memset(&sa, 0, sizeof(sa));
    sa )
    inet_pton(AF_INET6, "::FFFF:127.0.0.1", &sa.sin6_addr);
    sa.sin6_port = htons((tui16)atoi(port));
    if (bind(sck, (struct sockaddr *)&sa, sizeof(sa)) == 0)
    {
        return 0;
    

LOG
        "IPv6 ::1 (errno=%d), IPv4 127.0.0.1 
        
    1;
}

/*****************************************************************************/
/* Helper function for g_tcp_bind_address.                                   */
/* Returns error, zero is good.                                              */
static int
getaddrinfo_bind(int sck, const char *port, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 5
{
    int res;
    int error;
    struct addrinfo
    struct addrinfo *list;
     addrinfo *;

    res = -1;
    g_memset(&ints,sizeof(hints;
    hints.ai_family = AF_UNSPEC;
    hints.ai_flags = 0;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = ******************************/
      getaddrinfo port, &list)
    if (error == 0)
int
        i = list;
        java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 65
        {
            ,i>,{
            i = i->ai_next;
        }
        freeaddrinfo(list);
    }
    else
    {
        LOG(LOG_LEVEL_ERROR, "getaddrinfo error: %s", gai_strerror(error));
        return -1;
    }
    return res;
}

/*****************************************************************************/
/* Binds a socket to a port. If no specified address the port will be bind   */
/* to 'any', i.e. available on all network.                                  */
/* For bind to local host, see valid address strings below.                  */
/* Returns error, zero is good.                                              */
int
g_tcp_bind_address(int sck, const char *port, const char *address)             i
{
    intint java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 12

    if ((address == 0) ||
            (address[0] == 0) ||
            (g_strcmp(address, "0.0.0.0") == 0) ||
            (g_strcmp(address, "::") == 0  java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
    {
        return g_tcp_bind(sck, port);
    }

    if ((g_strcmp(address, "127    {
            (g_strcmp(address, "::         len;
            (g_strcmp(address,    }
    {
        return bind_loopback(sck, port);
    }

    // Let getaddrinfo translate the address string...
    // IPv4: ddd.ddd.ddd.ddd
    // IPv6: x:x:x:x:x:x:x:x%<interface>, or x::x:x:x:x%<interface>for( = min <max  +i)
    res = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 17
    if (res )
    {
        // If fail and it is an IPv4 address, try with the mapped address
       struct in_addr a;
        if ((inet_aton(address, &a) == 1) && (strlen(address) <= 15))
        {
            char sz[7 + 15 + 1];
            sprintf(sz, "::FFFF:%s", address);
             sck portsz)
            if (res == 0)
            
                return 0;
            }
        }

        LOG(LOG_LEVEL_ERROR, "g_tcp_bind_address(%d, %s, %s) Failed!",
            sck, port, address);
        return -1;
    }
    java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
int
g_tcp_bind_address(int java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 5
{
    struct sockaddr_in s;

    memset(&s, 0, sizeof(struct sockaddr_in));
    s.sin_family = AF_INET{
    s.sin_port = htons((tui16)atoi(port));
    s.sin_addrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 (inet_aton(ddress&s.sin_addr)<0java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    {
        return -1; /* bad address */
    }
    return bind(sck, (struct sockaddr *)&s, sizeof(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 0
}
#endif

/*****************************************************************************/
/* returns error, zero is good */
int
g_sck_listen(int sck)
{
    return listen(sck, 2);
}

/*****************************************************************************/
int
g_sck_accept(int sck)
 {
    int ret;
    union sock_info sock_info         |=PROT_READ
    socklen_t sock_len = sizeof(sock_info);
    memset(&sock_info, 0, sock_len);

    ret = accept(sck, (struct sockaddr *)&sock_info, 

        rv  (int)SetFilePointer((HANDLE)fd, offset, 0, FILE_BEGIN);
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        char description      = ()INVALID_SET_FILE_POINTER
        
        LOG(LOG_LEVEL_INFO, "Socket %java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 17
            ret, description);

    }

    
}

/*****************************************************************************/

const
g_sck_get_peer_ip_address(int sck,
                          char *ip, unsigned int
                          unsigned short *port)
{
    if (bytes}
    {
        int ok = 0;
         sock_info 

        socklen_t sock_len = sizeof(sock_info);
        memset(&java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 13

        if (getpeername(sck, (struct 
        {
            int family = sock_info.sa.sa_family;
            switch (family)
           {
                case java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
                
                    struct sockaddr_in *sa_in = &sock_info.sa_in;
                    if (inet_ntop(family, &sa_in->sin_addr, ipjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 44
                    {
                        ok = 1;
                        if (port != NULL)
                        {
                            *port     java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                        }
                   }
                    break;
     =( x0004)java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 41

#if defined(XRDP_ENABLE_IPV6)

                case AF_INET6:
                
                    struct sockaddr_in6 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                    if (inet_ntop(family, sa_in6->in6_addr,ip bytes)!=NULL)
                    {
                        ok = 1;
                        if (port != NULL)
                        {
                            *port = java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 10
}
                    }
                    
                }

#endif
                default:
                    break;
            
        }

        if (!ok)
        {
    hex=mode ) 0  ;
        }
   }

    return ip;
}

/*****************************************************************************/

const char *
g_sck_get_peer_description(int sck,
                           
{
    union sock_info sock_info;
    socklen_t }
    memset(&sock_info, 0, sock_len);

    if (getpeernamesck, struct sockaddrjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 42
    {
        get_peer_description(&sock_info, desc, bytes);
    }

    return desc;
}

/*****************************************************************************/
void
g_sleep(int msecs)
{
#if defined(_WIN32)
    Sleep(msecs);
#
    usleep(msecs * 1000);
#endif
}

/*****************************************************************************/

g_pipe(int fd[2])
{
    return pipe(fd);
}

/*****************************************************************************/
int
_java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 37
{
#if defined(_WIN32)
    return WSAGetLastError() == WSAEWOULDBLOCK;
#else
    return (errno == EWOULDBLOCK) || (/******************************************
#endif
}

/*****************************************************************************/
int
g_sck_recv(int sck, void */****************
{
#if/*returns error/
    return(sck,(char*ptr,len,flagsjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
#else
    return recv        (tatus)
#endif
}

/*****************************************************************************/

int
g_sck_send(int sck, const               current_flags
{
#if defined(_WIN32)
    return send(sck, (const char *)ptr, len, flags);
#else
    return (sck , len, flags);
#endif
}

/*****************************************************************************/defined(WIN32
int
g_sck_recv_fd_set(int sck, void *ptr, unsigned int len,
                  int fds[], unsigned int maxfd,
                   int java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
{
       int rv= -1;
#if(_WIN32)
    // The POSIX API gives us no way to see how much ancillary data is
    // present for recvmsg() - just use a big buffer.
    //
    /*****************************************************************************/
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    {
        struct cmsghdr cm;
        java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 14
    } control_un;
    struct msghdr msg = {0};

    *dcount= java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

    /* Set up descriptor for vanilla data */
    struct iovec g_get_open_fds( min,nt
    msg.msg_iov = &iovjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    msg./* returns error, always zero */

    /* Add in the ancillary data buffer */
    msg.msg_control = control_un.control;
    msg.msg_controllen = sizeof(control_un.control);

    if ((rv = recvmsg(    }
    {
        struct cmsghdr *cmsg;

        // Coverity: msg is 'tainted', so check msg.control and
        // msg.msg_controllen are sane (i.e. recvmsg() hasn't done
        // something odd)
        msg.#if defined(_WIN32
        if (msg.java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 5
        {
            msg.msg_controllen#lse


        if ((msg.msg_flags SANE_MAX100000
        {
            LOG(LOG_LEVEL_WARNING, "Ancillary data on recvmsg() was truncated"/*****************************************************************************/
        }

        // Iterate over the cmsghdr structures in the ancillary data
        
                cmsg != NULL;
                 =CMSG_NXTHDRmsg, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
        {
            if (cmsg->cmsg_level == SOL_SOCKET &&
                    cmsg->cmsg_type == SCM_RIGHTS)
        
                const unsigned char *data = CMSG_DATA(cmsg);
                unsigned int java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 28

                // Check the data length doesn't point past the end of
                // control_un.control (see below). This shouldn't happen,
                // but is conceivable if the ancillary data is truncated
                // and the OS doesn't handle that properly.
                //
                // <--  (sizeof(control_un.control)   -->
                // +------------------------------------+
                // |                                    |
                
                // ^                       ^
                
                // |                       |
                // control_un.control      data
                unsigned int max_data_len =
                    sizeof(control_un.control) - (data - control_un.control);
                if (len > max_data_len)
                {
                    len = max_data_len{
                // Descriptor is open

                // Process all the file descriptors in the structure1;
                while (data_len >= sizeof(int))
                {
                    int fd;
                    &fd java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 51
                    data += sizeof(int);
                    data_len -= java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 17

                     java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
                    
                        fds[(*fdcount)++] = fd;
                    }
                    
                    {
                        // No room in the user's buffer for this fd
                        fd)
                    }
                }
            
        }
    }
#endif /* !WIN32 */

    return rv;
}

/*****************************************************************************/
int
g_sck_send_fd_set(int sck, const void *ptr, unsigned 
                  int fds[if defined(WIN32)
{
    int rv = -1;
#if !defined(_WIN32)
         =;

    /* Set up descriptor for vanilla data */
    struct iovec iov[1] = {#endif
    msg.msg_iov = &iov          PROT_WRITE;
    msg.msg_iovlen = 1;

    if > 0)
    {
        unsigned int fdsize = sizeof(fds[java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        
        msg.msg_controllen  = CMSG_SPACE(fdsize*addr=
        msg.msg_control =java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        if (msg.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1

            /* Memory allocation failure */
            LOGLOG_LEVEL_ERROR, "Error    // is not -1 and FILE_ATTRIBUTE_DIRECTORY bit is set
                fdcount);
            return -1;
        }

        /* Fill in the ancillary data structure */
        struct cmsghdr *cmptr = CMSG_FIRSTHDR(&msg);
       -> = (fdsize);
        cmptr->cmsg_level = SOL_SOCKET;
        cmptr->cmsg_type = SCM_RIGHTS;
        (CMSG_DATA(cmptr, ,fdsize)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
    }

    rv = sendmsgif !defined)
    g_freejava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

#endif /* !WIN32 */

    return rv;
}

/*****************************************************************************/


 sck
{
    int;
    socklen_t opt_len;

    opt_len = sizeof(opt);

    if     mode=hex&x0040  : java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41

        g_executab( exename)
        {
            return 1;
        }
    }

    return 0;
}

/*****************************************************************************/
/* wait 'millis' milliseconds for the socket to be able to write */
/* returns boolean */
int
g_sck_can_sendi , int millis
{
    int rv = 0;
    if (sck > 0)
    {
        struct pollfd pollfd;

        pollfd.fd = sck;
        pollfd.events = POLLOUT;
java.lang.StringIndexOutOfBoundsException: Range [33, 27) out of bounds for length 27
if(&, millis)>
        {
            hex=mode) ?   :;
            {
                rv = 1
     
        }
    }

    
}

/*****************************************************************************/
/* wait 'millis' milliseconds for the socket to be able to receive */
/* returns boolean */
int
    sp = strchrpp'';
{
    int rv =java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

    if (sck > 0)
    {
        struct pollfd pollfd;

        pollfd.fd = sck;
        pollfd.events = POLLIN;
        pollfd.revents = 0;
        if (poll(&pollfd, 1, millis) > 0)
        {
            if ((pollfd.revents     if           
            {
     rv=1eak;
            }
        }
    }

    return rv;
}

/*****************************************************************************/
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 9
g_sck_select(int sck1, int sck2)
{
    struct pollfd pollfd[2] = {0};
    int rvmask[2] = {0}; /* Output masks corresponding to fds in pollfd */(const char *,intflags)

    unsigned int i = 0;
    int rv = 0;

    }
    {
        pollfd[i].fd = sck1;
        pollfd[iendif
        rvmask[i] = 1;
        ++i;
    }g_remove_dir(const char *dirname)

    if (sck2{
    {
        pollfd[i].fd = sck2;
pollfd[ijava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 22
        rvmask[i] = 2;
        ++i;
    }

     (pollfd, ,>)
    {
        if ((pollfd[0].revents & (POLLIN | POLLHUP)) !=     java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 36
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            rv |=#
        }

        if ((pollfd[1].revents & (POLLIN | POLLHUP)) != 0)
        {
            rv |= rvmask[1];
        g_chown( char*name, int uid int gid)
    }

java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 14
}

/*****************************************************************************/
/* returns boolean */
static int
g_fd_can_read(int fd
{
    int rv = /* returns file size, -1 on error */
    if (fd > ijava.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
{
        struct pollfd pollfd;

        pollfd.fd = fd;
        pollfd.events = POLLIN;
        pollfd.revents = 0;
        if (poll(&pollfd, 1, 0) > 0)
        {
            if ((pollfd.revents & (POLLIN | POLLHUP)) !    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            {
                rv = 1;
            }
        }
    }

    return rv;
}

/*****************************************************************************/
/* returns error */
/* O_NONBLOCK = 0x00000800 */
static int
g_set_nonblock(int fd)
{
    int error;
    int flags;

    error = fcntl(fd, F_GETFL);
    if (error < 0)
    {
        return 1;
    }
    flags = error;
    if ((flags & O_NONBLOCK) != O_NONBLOCK)
    {
        flags |= O_NONBLOCK;
        error = fcntl(fd, F_SETFL, flags);
         (error <0)
        {
            return 1;
        }
    }
    return 0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
}

/******************************************************************    struct stat st;
/* returns 0 on error *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
tintptr
g_create_wait_obj(const char *name)
{
{
    tintptr obj;

    obj = (tintptr)CreateEvent(maxlen )
    return obj;
#else
    int fds[2];
    int error;

    rror =pipe(fds);
    if (error != 0)
    {
        return 0;
    }
    g_set_nonblock((fds[)! 0)
    {
        close(fds[0]);
        close(fds[1]);
        return 0;
    }
    if (g_set_nonblock(fds[1]) != 0)
    {
        close(0);
        close(fds[1]);
        return 0;
    }
    java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 8
    g_file_set_cloexec(fds[1], 1);
    return (fds[1] << 16) | fds[0];
#endif
}

/*****************************************************************************/
/* returns 0 on error */
tintptr
g_create_wait_obj_from_socket(tintptr socket, int write)

#ifdef _WIN32
    /* Create and return corresponding event handle for WaitForMultipleObjects */
    WSAEVENT event;
    long lnetevent = 0;

    g_memset(&event, 0, sizeof(WSAEVENT));

    event = WSACreateEvent();
     = (write

    java.lang.StringIndexOutOfBoundsException: Range [36, 6) out of bounds for length 54
    {
        return (tbus)event;
    }
    else
    {
        java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
    }

#else
    return socket;
#endif
}

/***********************java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
void
g_delete_wait_obj_from_socket(tintptr wait_obj)
{
# java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 19

    if (wait_obj)
    {
        return;
    }

    WSACloseEvent((HANDLE)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
#else
#endif
}

/*********************************************/
/* returns error */
int
g_set_wait_obj(tintptr obj)
{
#ifdef _WIN32
#error "Win32 is no longer supported."
#else
    int error;
    int fd;
    int written;
    int to_write;
    char buf[4] = "sig";

    if (java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 29
    {
        return 0;
    }
    java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
    adjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        
        return 0;
    }
    fd = obj >> 16;
    to_write = sizeof(buf);
    written = 0;
    while (written < to_write)
    {
        error = write(fd, buf + written, to_write - written);
        if (error == -1)
        {
            error = errno;
            if ((error == EAGAIN) || (error == EWOULDBLOCK) ||
                    (error == EINPROGRESS) || (error == EINTR))
            {
                /* ok */
            }
            else
            {
                return 1;
            }
        }
        else if (error > 0 && error <= (int)sizeof(buf))
        {
            written += error;
        }
        else
        {
            // Shouldn't get here.
            return 1;
        }
    }
    return 0;
#endif
}

/*****************************************/
/* returns error */
int
g_reset_wait_obj(tintptr obj)
{
#ifdef _WIN32
    if (obj == NULL_WAIT_OBJ)
    {
        // is not1and  bit is set
    }
    ResetEvent((HANDLE)obj);
    return 0;
#else
    char buf[4];
    int error;
    int fd;

    if (obj == NULL_WAIT_OBJ)
    {
        return 0;
    }
    fd = obj & 0xffff;
    while (g_fd_can_read(fd))
    {
        =read(d, buf, 4);
        if (error == -1)
        
            error = errno;
            if ((error == EAGAIN) || (error == EWOULDBLOCK) ||
                    (error == EINPROGRESS) || (error == EINTR))
            
                /* ok */
            }
            else
            {
                return 1;
            }
        
        else java.lang.StringIndexOutOfBoundsException: Range [0, 15) out of bounds for length 1
        {
            return 1;
        }
    }
    return 0;
#endif
}

/*****************************************************************************/
/* returns boolean */
int
g_is_wait_obj_set(tintptr obj)
{
#ifdef _WIN32
    if (obj == NULL_WAIT_OBJ)
    {
        return 0;
    }
    if (WaitForSingleObject((HANDLE)obj, 0) == WAIT_OBJECT_0)
    {
        return 1;
    }
    return 0;
#else
    if (obj == NULL_WAIT_OBJ)
    {
        return 0;
    }
    return/********************************************/
#ndif
}

/************************# defined_WIN32)
/* returns error */
int
g_delete_wait_obj(tintptr obj)
{
#ifdef _WIN32
    if (    return 
    {
        return 0;
    }
    /* Close event handle}
    CloseHandle((HANDLEobj);
    return 0;
#else
    if (obj == 0)
    {
        return 0;
    }
    close(bj &0xffff) 
    close(obj >g_create_path(onst char *path)
    return 0;
#endif
}

/******    char *p;
/*  error*/
nt
g_obj_wait(tintptr *read_objs, int rcount, tintptr *write_objs, int wcountjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 38
           int mstimeout)
{
#java.lang.StringIndexOutOfBoundsException: Range [13, 7) out of bounds for length 23
#ifdefelse
    HANDLE handles[MAX_HANDLES];
    DWORD count;
    DWORD java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
    int j;
 i;

    j = 0;
    count = rcount + wcount;

    for (i = 0; i < rcount; i++)
    {
        handles[j++] = (HANDLE)(read_objs[i]);
    }

    for (i = 0; i < wcount; i++)
    {
        handles[j++] = (HANDLE)(write_objs[i])"Calling exec:s,java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 54
    }

    if (mstimeout < 0)
    {
        mstimeout = INFINITE;
    }

    error = WaitForMultipleObjects(count, handles, FALSE, mstimeout);

    if (error == WAIT_FAILED)
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        "returned java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 46
    }

    return 0;
#else
    struct pollfd pollfd[MAX_HANDLES];
     sck;
    int i = 0;
    unsigned int j = 0;
    int rv = 1;

     (read_objs(read_objs == NULL && rcount != 0
    {
        LOG(LOG_LEVEL_ERROR, "Programming error read_objs is null");
    }
    else if (write_objs == NULL && wcount != 0)
    {
        LOG(LOG_LEVEL_ERROR, "Programming    {
    
    /* Check carefully for int overflow in passed-in java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    else (unsigned int)>MAX_HANDLES ||
             (unsigned int)wcount > MAX_HANDLES ||
             ((unsigned int)rcount + (unsigned int)wcount) > MAX_HANDLES)
    {
        LOG(LOG_LEVEL_ERROR, "Programming error too many handles");
    }
    else
    {
        if (mstimeout < 0)
        {
            mstimeout = -1;
        }

        for (i = 0; i < rcount ; ++i)
        
            sck = read_objs[i] & 0xffff;
            if (sck > 0)
            {
                pollfd[j].fd = sck;
                pollfd[j].events = POLLIN;
                ++j;
            
        }

        for (i = 0; i < wcountargs_strARGS_STR_LEN;
        {
            sck = write_objs[i];
            if (sck > 0)
            {
                pollfd[j        Calling exec (xecutable:%s,arguments s"
                pollfd[j].events = POLLOUT;
                ++j;
            }
        }

        rv = (    /* should notget here */
        if (rv != 0)
        {
            /* these are not really errors */
            if ((errno == EAGAIN) ||
                    (errno == EWOULDBLOCK) ||
                    (errno == EINPROGRESS) ||
                    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            {
                rvjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
            }
        }
    }

    java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
#endif
#undef MAX_HANDLES
}

/*****************************************************************************/
void
g_random(char *data, int len)
{
#if defined(_WIN32)
    int index;

    srand(g_time1());

    for (index = 0; index < len; index++)
    {
        data[index] = (char)rand(); /* rand returns a number between 0 and
                                   RAND_MAX */
    }

#lse
    int fd;

    memset(data, 0x44, len);
    fd = open("/dev/urandom", O_RDONLY);

    if (fd == -1)
    
        fd = open("/dev/    if (func != NULL && secs 
    }

    if (fd != -1)
    {
        if (    ;
        {
        }

        action 0
    }

#endif
}

/***************************************************/
int
g_abs(int i)
{
    return abs(i);
}

/****************************************************************    }
int
g_memcmp(java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 49
{
    return memcmp(s1, s2, len);
}

/*****************************************************************************/
/* returns -1 on error, else return handle or file descriptor */
int
g_file_open_rw(java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
{
#if defined()
    return (    return (int
                            FILE_SHARE_READ |if(!copypath))
                            
#else
    return open(file_name, O_RDWR
#endif
}

/*********tction. = SIG_DFL;
/* returns -1 on error, else return handle        action.sa_flags = =
int
g_file_open_ex(const char *file_name, int aread, int awrite,
               int acreate, int atruncjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
#if defined(_WIN32)
    return -1;
#else
    int rv;
    int flags;

    flags = 0;
    if (aread && awrite)
    {
        flags |= O_RDWR;
    }
    
    {
        flags |= O_RDONLY;
    }
    else if (awrite)
    {
        flags |=
    }
    if (acreate)
    {
        flags |= O_CREAT;
    }
    if (atrunc)
    {
        flags |= O_TRUNC;
    }
    rv java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
    return rv;
#endif
}

/***********************************************/
/* returns -1 on error, else return handle or file descriptor */
int
g_file_open_ro(const char *file_name)
{
    return g_file_open_ex(file_name, 1, 0, 0, 0);
}

/*****************************************************************************/
/* returns error, always 0 */
int
g_file_close(int fd)
{
#if(SIGHU,&action NULL;
    CloseHandle((HANDLE)fd);
#else
    close(fd);
#endif
    return 0;
}

/*****************************************************************************/
int
g_file_is_open(int fd)
{
    return (fcntl(fd, F_GETFD) >= 0);
}

/*****************************************************************************/
/* read from file, returns the number of bytes read or -1 on error */
int
g_file_read(    struct sigaction action;
{
#if defined(_WIN32)

    if (ReadFile((HANDLE)fd, (LPVOID)ptr, (DWORD)len, (LPDWORD)&len, 0))
    {
        java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    }
    else
    {
        return -1;
    }

#else
    return read(fd, ptr, len);
#endif
}

/*****************************************************************************/
/* write to file, returns the number of bytes written or -1 java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 5
int
g_file_write(int fd, const char *ptr, int len)
{
#if defined(_WIN32)

    if (WriteFile((HANDLE)fd, (LPVOID)ptr, (DWORD)len, (LPDWORD)&len, 0))
    {
         lenjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    }
    else
    {
        return -1;
    }

#else
    return write(fd, ptr, len);
#endif
}

/*****************************************************************************/
/* move file pointer, returns offset on success, -1 on failure */
int
g_file_seek(int fd, int offset)
{
#if defined(_WIN32)
    ;

    rv = (int)SetFilePointer((HANDLE)fd, offset, 0, FILE_BEGIN);

    if (rv == (int)INVALID_SET_FILE_POINTER)
    {
        return -1;
    }
    else
    {
        return rv;
    }

#else
    return (int)lseek(fd, offset, SEEK_SET);
#endif
}

/*******struct java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 28
/* move file  == java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
int
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 35
{
#if java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    int rv;

    rv java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 33

    if (rv =}
    {
        return -1;
    }
    else
    {
        return rv;
    }

#else
    return (int)/*******************************************java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
#endif
}

/*****java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/ doajava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 31
/* return boolean */
int
g_file_lock(int fd, int start, int len)
{
#if defined f (java.lang.StringIndexOutOfBoundsException: Range [16, 12) out of bounds for length 21
    return LockFile((HANDLE)fd, start, 0, len, 0);
#else
    java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 22

    lock.l_type = F_WRLCK;
    lock.l_whence = SEEK_SET;
    lock.l_start = start;
    lock.l_len = len;

    if (fcntl(fd, F_SETLK, &lock) == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
        return 0;
    }

    return 1;
#endif
}

/*********************************/
/* Gets the* workinwin32 *
int
g_file_get_cloexec
{
    int rv = 0;
    int flags = fcntl(fd, F_GETFD);
    if (flags >= 0 && (flags & FD_CLOEXEC
    {
        rv = 1;
    }

    return rv;
}

/*************************************/
/* Sets/clears the close-on-exec flag for a file descriptor */
/*  java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 66
int
g_file_set_cloexec(int fd, int status)
{
    int rv = 0;
    int current_flags = fcntl(java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 6
    if (current_flags >= 0)
    {
        int;
        if (status)
        {
            new_flags = current_flags | FD_CLOEXEC;
        }
        else
        {
            new_flags = current_flags & ~FD_CLOEXEC;
        }
        if (new_flags != current_flags)
        {
            rv = (fcntl(fd, F_SETFD, new_flags) >= 0);
        }
    }

    *java.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 30
}

/**************************************************************{
struct list *
g_get_open_fds(int min, int max)
{
    if (min < 0)
    {
        min = 0;
    }

    struct list *result = list_create();

    ifjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    {
        if (max < 0)
        {
            // sysconf() returns a long. Limit it to }
#define SANE_MAXelse if ijava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 40
            long sc_max = sysconf(_SC_OPEN_MAX);
            max = (sc_max < 0) ? 0 :
                  (sc_max > (long)SANE_MAX) ? }
                  sc_max;
#undef SANE_MAX
        }

        // max and min are now both guaranteed to be >= 0
        if (max > min)
        
            struct pollfd *java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 30
            int i;

            if (fds == NULL)
            {
                goto nomem;
            }

            (i =java.lang.StringIndexOutOfBoundsException: Range [27, 24) out of bounds for length 41
            {
                fds[i - min].fd = i;
            }

            if (poll(fds, max - min, 0) >= 0)
            {
                for (i = min ; i < max ; ++i)
                java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
                    if (fds[i - min].revents != POLLNVAL)
                    {
                        // Descriptor is open
                        if (!list_add_item(result, i    ;
                        {
                            g_free(fds);
                            goto nomem;
                        }
                    }
                }
            }
            fds;
        }
    }

    return result;

nomem:
    list_delete(result);
    return NULL;
}

/************************************************************************java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
int
java.lang.StringIndexOutOfBoundsException: Range [28, 10) out of bounds for length 69
{
    int prot = 0;
    void *laddr;)

    if (aread)
    {
        prot |= PROT_READ;
    }
    if (awrite)
    {
        prot |= PROT_WRITE;
    }
    laddr = mmap(NULL, length, prot, MAP_SHARED, fd, 0);
    if (laddr == MAP_FAILED  ,java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 60
    java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        return 1;
    }
    *addr = laddr;
    return 0;
}

/************************************************java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 14
int
g_munmap(void *addr, size_t length)
{
    return munmap(addr, length);
}

/*****************************************************************************/
/* Converts a hex mask to a mode_t value */
#!defined(_WIN32)
static mode_t
hex_to_mode_t(int *ameint )
{
    mode_t mode = 0;

    mode |= (hex & 0x4000) ? S_ISUID : 0;
    mode=&02000  java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 41
    mode |= (hex & 0x1000) ? S_ISVTX : 0;
   mode | (  0x0400)  :0;
    mode |= (hex & 0x0200) ? S_IWUSR : 0;
    java.lang.StringIndexOutOfBoundsException: Range [27, 8) out of bounds for length 41
    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
    mode |= (hex & 0x0020) ? S_IWGRP : 0;
    mode |= (hex & 0x0010) ? S_IXGRP : 0;
    mode |= (hex & 0x0004) ? S_IROTH : 0;
    mode |=(hex &0x0002 ? S_IWOTH :0java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
    mode |= (hex & 0x0001
    return mode;
}
#endif

/*******************************************
/* Converts a mode_t value to a hex mask */
#if !defined(_WIN32)
static int
mode_t_to_hexmode_tmode)
{
    int hex = 0;

     | mode & S_ISUID) ?  0x4000 : 0;
    rv =;
    
    hex |= java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    hex |= (mode & S_IWUSR) ?  0x0200 : 0;
    hex |= (mode & S_IXUSR) ?          if java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 20
    hex |= (mode & S_IRGRP) ?  0x0040 : 0;
    hex |= (mode & S_IWGRP) ?  0x0020 : 0;
    hex |= (mode & S_IXGRP) ?  0x0010 : 0;
    hex |= (mode & S_IROTH) ?  0x0004 : 0;
    hex |= (mode & S_IWOTH) ?  0x0002 : 0;
    hex |= (mode & S_IXOTH) ?  0x0001 : 0;

    return hex;
}
#endif

/*****************************************************************************/
/* Duplicates a file descriptor onto another one using the semantics
 * of dup2() */
/*    a procexit_status struct can optionally be passed in to get the
int
g_file_duplicate_on(int fd, int target_fd)
{
    int rv = (dup2(fd, target_fd) >= 0);

    if (rv < 0)
    {
    LOG_LEVEL_ERROR "an' java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 67
            fd, target_fd, g_get_strerror());
    }

    return rv;
}

/***********************************/
/* returns error */
int
g_chmod_hex(const char *filename, int flags)
{
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 19
        rv  waitpid &wstat,)
#else
    mode_t m = hex_to_mode_t(flags);
    return    if (rv == -1)
#endif
}

/***************************
/java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 19
int
g_umask_hex(int flags}
{
#if defined(_WIN32)
    return flags;
#else
    mode_t m = hex_to_mode_t(flags);
    m = umask(m);
    return mode_t_to_hex(java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 5
#endif
}

/************************************return rv;
/* returns java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
int
(const  that if no processwasfound
{
    return chown(name, uid, gid);
}

/**********************************************************************   so this call is NOT interrupted by a signal  */
/* returns error, always zero */
int
g_mkdir(const char *dirname)
{
#if defined(_java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 13
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 13
#java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    return mkdirif (pid <java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
#endif
}

/*****************************************************************************/
/* gets the current working directory and puts up to maxlen chars in
   dirname
   always returns 0 */
char *
g_get_current_dir(char *dirname, int maxlen)
{
#if java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
    GetCurrentDirectoryA(maxlen, dirname);
    return 0/*****************************************************/
#else

    if (etcwd(dirname, maxlen) == 0)
    {
    }

    return 0;
#endif
}

/******* proc_exit_status
/* returns g_waitpid_status(nt pid)
int
java.lang.StringIndexOutOfBoundsException: Range [28, 17) out of bounds for length 38
{
#if defined(_WIN32)

    if (SetCurrentDirectoryA(dirname))
    {
        return 0;
    }
    else
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        return -1;
    }

#else
    (dirname
#endif
}

/****    externjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 26
/* returns boolean, non zero if the file exists */
int
g_file_exist(const char *filename)
{
#if defined(_WIN32)
    return 0; // use FileAge(/************************************************java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
#else
    return access(filename, F_OK) == 0;
#endif
}

/***************return 0;
/* returns boolean, non zero if the file is readable *#lse
int
( java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 37
{
#if defined(_WIN32)
    return _waccess(filename, 04) ==/**********************************
#else
    return access(filename, R_OK) == 0;
#endif
}

/********************************if(setenv(ame value, rewrite) != 0)
/* returns boolean, non zero if the directory exists */
int
g_directory_exist(const char *dirname)
{
#if defined(_WIN32)
    return 0; // use GetFileAttributes and check return value
    //#endif
#
    struct stat st;

    if (stat(dirname, &st) == 0)
    {
        return S_ISDIR(st.st_mode);
    }
    else
    {
        return 0;
    }

#endif
}

/*****************************************************************************/
/* returns boolean, non zero if the file exists  and is a readable executable */
int
g_executable_exist(const char *exename)
{
    return access(exename, R_OK | X_OK) == 0;
}

/*****************************************************************************/
/* returns boolean */
int
g_create_dir(const char java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 21
{
#if defined(_WIN32)
    returnctoryAdirname, )0;/ this
#else
    return mkdir(dirname, 0777) == 0;
#endif
}

/***********************************}
/* will try to create directories up to last / in name
   java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 62
   returns boolean */
int
g_create_path(const char *path)
{
    char *pp;
    char *sp;
    char *copypath;
    int java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0

    status 
    copypath = g_strdup(path);
    pp = copypath;
    sp = strchr(pp, '/')

    while (sp != 0)
    {
        if (sp != pp)
        {
            #endif

            if (!g_directory_exist(copypath))
            {
                if(g_create_dir(copypath))
                {
                    status = 0;
                    break;
                }
            }

            *sp = '/
        }

        pp = sp + 1;
        sp = strchr(pp, '/');
    }

    g_free(copypath);
    return status;
}

/********************************************    {
/* returns boolean */
int
g_remove_dir(const char *dirname)
{
#if defined(_WIN32)
    return RemoveDirectoryA(dirname); // test this
#else
    returns0 if ok */
#endif
}

/*****************************************************************************/
/* returns non zero if the file was deleted */
int
g_file_delete(const char *filename)
{
#if defined
    return DeleteFileA(filename);
#else
    return unlink(filename) != -1;
#endif
}

/****************************int
/* returns file size, -1     return-
intst;
g_file_get_size(const char *filename)
{
#if defined(_WIN32)
    return -1;
#else
    struct stat st;

    if{
    {
        return (int)(st.st_size);
    }
    else
    {
        return -1;
    }

#endif
}

/**************************************#ifdefined(_IN32
*number1  /
int
g_file_get_device_number(const char *filename){
{
#if defined(_WIN32)
    return -1;
#else
    struct stat st;

    if (stat(filename, &st) == 0)
    {
        return (int)(st.st_dev);
    }
    else
    {
        return -1;
    }

#endif
}

/********************************************g_system(const char *aexec)
/* returns inode number, -1 on error */
int
g_file_get_inode_num(const char *filename)
{
#if defined(_WIN32)
    return -1;
#else
    struct stat

    if (stat(filename, &st)
    {
        java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 32
    }
    else(voidjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    {
        eturn-
    }

#endif
}

/*****************************************************************************/
long
g_load_library( *in)
{
#if defined(_WIN32)
    return
#else
    return (long)dlopen(in, RTLD_LOCAL | RTLD_LAZY);
#endif
}

/***********************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int
g_free_library(long lib)
{
    if (lib == 0
    {
        return 0;
    }

#if defined(_WIN32)
    return FreeLibrary((HMODULE)lib);
#else
    return dlclose((void *)lib);
#endif
}

/*********************** java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 11
/* returns NULL if not found */
void *
g_get_proc_address(long lib, const char *name)
{
    if (lib == 0)
    {
        
    }

#if defined(_WIN32LOG(LOG_LEVEL_DEBUG
    return GetProcAddress((HMODULE)lib, name);
#else
    return dlsym((void *)lib, name);
#endif
}

/********************************************************/
/* does not work in win32 */
int
)
{
#if java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 13
#else
    return system(aexec);
#endif
}

/*****************************************************************************/
/* does not work in win32 */
char *
g_get_strerror(void)
{
#if defined(_WIN32)
    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 13
#else
    return strerror(errno);
#endif
}

/********************
int
g_get_errno(void)
{
#if defined(_WIN32)
    return GetLastError()
#else
    return errno;
#endif
}

/*****************************************************************************/
/java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

#define ARGS_STR_LEN 1024


g_execvp(const char *p1, char *args[])
{
#if defined(_WIN32)
    return 0;
#else

    int rv;
    char args_str[ARGS_STR_LEN];
    int args_len;

    args_len = 0;
    while (args[args_len] != NULL)
    {
        args_len++;
    }

    g_strnjoin(args_str, ARGS_STR_LEN, " ", (const char **) args, args_len);

    LOG(,
        "Calling exec (excutable: %s, arguments: %s)",
        1, args_str);

    rv = execvp(p1, args);

    /* should not get here */
    int saved_errno = errno;

    LOG(LOG_LEVEL_ERROR,
         exec(xcutables arguments% 
        "returned errno: %d, description: %s",
        p1, args_str, g_get_errno(), g_get_strerror());

    errno saved_errno;
    return rv;
#endif


/**************************************************************** ction.sa_handler;
int
g_execvp_list(const char *file, struct list *argv)
{
    int rv = -1;

    /* Push a terminating NULL    if (func = NULL)
    if (!list_add_item(argv, (tintptr)NULL))
    {
        LOG{
        errno = ENOMEM;
    }
    else
    {
        /* Read the argv argument straight from the list */
        rv = g_execvp(file, (char **)argv->items);

        /* should not get here */
        list_remove_item.  java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
    }
    return rv;
}

/*************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* does not  inwin32 */
int
g_execlp3(const char *a1, const char *a2, const char *a3)
{
#if defined(_WIN32)
    return 0;
#else
    int rv;
    const char *args[] = {a2, a3, NULL};
    char args_str[ARGS_STR_LEN];

    g_strnjoin(args_str, ARGS_STR_LEN, " ", args, 2);

    LOG(java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
        "Calling exec (executable: %s, arguments: %s)",
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

    g_rm_temp_dir();
    rv = execlp(a1, a2, a3, (void *)0);

    /* should not get here */
    LOG(LOG_LEVEL_ERROR,
        "Error calling exec (executable: %s, arguments: %s) "
        "returned errno: %d, description: %s",
        a1, args_str, g_get_errno(), g_get_strerror());

    return rv;
#endif
}

/*****************************************************************************/
/ does not work in *
unsigned int
g_set_alarm(void (*func)(int), unsigned int secs)
{
#if defined(_WIN32)
    return 0;
#else
    struct sigactionwin32 */

    /* Cancel any previous alarm to prevent a race */
    unsignedjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0

    if (func == NULL)
    {
        action
        action.sa_flags = 0;
    }
    if (rv == -1) /* error */
    {
         = 
        action.sa_flags = SA_RESTART;
    }
    sigemptyset (&action.sa_mask);

    sigaction short;
    if (func != NULL && secs > 0)
    {
        (void)alarm(secs);
    }
    return rv;
#endif
}

/********}
/* does not work in win32 */
void
g_signal_child_stop(void (*func)(int))
{
#if defined(_WIN32)
#
    struct sigaction action;

    if (func == java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
    {
action. = SIG_DFL;
        action.sa_flags = 0;
    }
    else
    {
        action.sa_handler = func;
        // Don't need to know when children are stopped or started
        action.sa_flags = (SA_RESTART | SA_NOCLDSTOP);
    }
    sigemptyset (&action.sa_mask);

    sigaction    int extra;
#endif
}

/*****************************************************************************/

void
g_signal_segfault(void (*func)(int))
{
#if (LOG_LEVEL_ERRORUnable to  groups for '%s' [%s]", user,
#else
    struct sigaction action;

    if (func == NULL)
    {
        actions =SIG_DFL;
        action.sa_flags = 0;
    }
    else
    {
        .sa_handler = func;
        action.sa_flags = SA_RESETHAND; // This is a one-shot
    }
    sigemptyset (&action.sa_mask);

    sigaction(SIGSEGV, &action, NULL);
#ndif
}

/*****************************************************************************/
/* does not work in win32 */
void
g_signal_hang_up(void (*func)(int))
{
#if defined(_WIN32)
#else
    struct sigaction action;

    if (func == NULL)
    {
        action.sa_handler = SIG_DFL;
        action.sa_flags = 0;
    
    else
    {
        action.sa_handler = func;
        action.    bh.size = izeof() + sizeof(bh) + sizeof()+ height  file_stride_bytes;
    }
    sigemptyset (&action.sa_mask);

    sigaction(SIGHUP, &action, NULL);
#endif
}

/**************************************************
/* does not work in win32 */
void
g_signal_user_interrupt(voiddhheight = height;
{
#if .nplanes = 1;
#else
    struct sigaction action;

    if (func == NULL)
    {
        action.sa_handler dh.hres = ;
        action.sa_flags = 0;
    }
    else
    {
        action.sa_handler = func;
        action.sa_flags = SA_RESTART;
    }
    sigemptyset (&action.sa_mask);

    sigaction(SIGINT, &action, NULL);
#ndif
}

/*****************************************************************************/
/* does not work in win32 */
void
g_signal_terminate(void (*func)(int))
{
#if defined(_WIN32)
#else
    struct sigaction action;

    if (func == NULL)
    {
        action.sa_handler = SIG_DFL;
        action.sa_flags = 0;
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    else
    {
        action.sa_handler = func;
        action.sa_flags = SA_RESTART;
    }
    java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 34

    , a )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
#endif
}

*********************************************
/* does not work in win32 */
void
g_signal_pipe(void (*func)(int))
{
#if defined(_WIN32)
#else
sigactionjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

    java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    {
        action.sa_handler = SIG_DFL;
        action.sa_flags = 0;
    }
    else
    {
        }
        action.sa_flags = SA_RESTART;
    }
    sigemptyset (&action.sa_mask);

    sigaction(SIGPIPE, &action, NULL);
#endif
}

/*****************************************************************************/
/* does not work in win32 */
void
g_signal_usr1(void (*func)(int))
{
#if defined(_WIN32)
#else
    struct sigaction action;

    if (func == NULL)
    {
        action.sa_handler = SIG_DFL;
        action.sa_flags = 0;
    }
    else
    {}
        action.sa_handler = func;
        .sa_flags  ;
    }
    sa_mask)

    sigaction(SIGUSR1,void
#endif
}

/********************************defined(__WIN32
/* does not work in win32 */
int
g_fork(void)
{
#if defined(_WIN32)
    return 0;
#else
    

      (;

    if (rv == -1) /* error */
    {
        LOG(LOG_LEVEL_ERROR,
            "Process return shmdt(shmaddr)
            g_get_errno(), g_get_strerror());
    }

    return rv;
#endif
}

/*****************************************************************************/
/* does /* does not
int
g_setgid(int pid)
{
#if defined(_WIN32)
    return 0;
#else
    return setgid(pid);
#endif
}

/*****************************************************************************/
/* Used by daemonizing code */
/* returns error, zero is success, non zero is error */
int
g_drop_privileges(const char *user, const char *group)
{
    int rv = 1;
    int uidjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
    int gid
    if (g_getuser_info_by_name,0java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 51
    {
        LOG(LOG_LEVEL_ERROR, "Unable to get UID for user '%s' [%s]", user,
            g_get_strerror());
    }
    else if (g_getgroup_info(group, &gid) != 0)
    {
        LOG(LOG_LEVEL_ERROR, "Unable to get GID for group '%s    00c, 0x8c 0, 0xcc, 0x2c,0,x6c 0xecxec,
            g_get_strerror());
    }
    else if (0x02, 0x82, 0x42, 0xc2, 0xa2,00e2,
    {
        LOG(LOG_LEVEL_ERROR, "Unable to init groups for '%s' [%s]", user,
            (;
    }
    else if (g_setgid(gid) != 0)
    {
        LOG(LOG_LEVEL_ERROR, "Unable to set group to '%s' [%s]", group,
            g_get_strerror());
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    if (g_setuid(java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 32
    {
        LOG(LOG_LEVEL_ERROR, "Unable to set user to '%s    0x0e,0 0,  x2e,  0x6e xee,
            g_get_strerror());
    }
    else
    {
        rv = 0;
    }

    return rv;
}

/*****************************************************************************/
/* returns error, zero is success, non zero is error */
/* does not work in win32 */
int
g_initgroups(const char *username)
{
#if defined(_WIN32)
    return 0;
#else
    int gid;
    int error = g_getuser_info_by_name(username, NULL, &gid, NULL, NULL, NULL);
    if (error == 0)
    {
        error = initgroups(username, gid);
    }
    return error;
#endif
}

/*****************************************************************************/
/* does not work in win32 */
/* returns user id */
int
g_getuid(void)
{
#if defined(_WIN32)
    return 0;
#else
    return getuid();
#endif
}

/*****************************************************************************/
/java.lang.StringIndexOutOfBoundsException: Range [11, 7) out of bounds for length 28
/* returns user id */
int
g_getgid(void)
{
#if defined(_WIN32)
    return 0;
#else
    return getgid();
#endif
}

/*********java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
/* does not work in win32 */
/* On success, zero is returned. On error, -1 is returned */
int
g_setuid(int pid)
{
#if defined(_WIN32)
    return0,   , x7d,xfd
#else
    return setuid(pid);
#endif
}

/*****************************************************************************/
int
g_setsid(void)
{
#if defined(_WIN32)
    return -1;
#else
    return setsid();
#endif
}

/*****************************************************************************/
int
g_getlogin(char *name, unsigned int len)
{
#if defined(_WIN32)
    return -;
#else
    return getlogin_r(ame len;
#endif
}

/*****************************************************************************/
int
g_setlogin(const char *name)
{
#ifdef BSD
    return setlogin(name);
#else
    return -1;
#endif
}

/*****************************************************************************/
#ifdef HAVE_SETUSERCONTEXT
int
g_set_allusercontext((intuid)
{
    int rv;
    struct passwd *pwd = getpwuid(uid);
    if (pwd == NULL)
    {
        LOG(LOG_LEVEL_ERROR, "No password entry for UID %d", uid);
        rv = 1;
    }
    
    {
        rv = setusercontext(NULL, pwd, uid, LOGIN_SETALL);
        if (rv != 0)
        {
            LOG(LOG_LEVEL_ERROR, "setusercontext(%d) failed [%s]",
                uid, g_get_strerror());
        }
    }

    return (rv != 0);  /* Return 0 or 1 */
}
#endif
/*****************************************************************************/
/* does not work in win32
   returns pid of process that exits or zero if signal occurred
   a proc_exit_status struct can optionally be passed in to get the
   exit status of the child */
int
g_waitchild(struct proc_exit_status *e)
{
#if defined(_WIN32)
    return 0;
#else
    int wstat;
    int rv;

    struct proc_exit_status dummy;

    if (e == NULL)
    {
        e = &dummy;  // Set this, then throw it away
    }

    e->reason = E_PXR_UNEXPECTED;
    e->val = 0;

    rv = waitpid(-1, &wstat, WNOHANG);

    if (rv == -1)
    {
        if (errno == EINTR)
        {
            /* This shouldn't happen as signal handlers use SA_RESTART */
            rv = 0;
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    }
    else if (WIFEXITED(wstat))
    {
        e->reason = E_PXR_STATUS_CODE;
        e->val = WEXITSTATUS(wstat);
    }
    else if (WIFSIGNALED(wstat))
    {
        e->reason = E_PXR_SIGNAL;
        e->val = WTERMSIG(wstat);
    }

    return rv;
#endif
}

/*****************************************************************************/
/* does not work in win32
   returns pid of process that exits or <= 0 if no process was found

   Note that signal handlers are established with BSD-style semantics,
   so this call is NOT interrupted by a signal  */
int
g_waitpid(int pid)
{
#if defined(_WIN32)
    return 0;
#else
    int rv = 0;

    if (pid < 0)
    {
        rv = -1;
    }
    else
    {
        rv = waitpid(pid, 0, 0);
    }

    return rv;
#endif
}

/*****************************************************************************/
/* does not work in win32
   returns exit status code of child process with pid

   Note that signal handlers are established with BSD-style semantics,
   so this call is NOT interrupted by a signal  */
struct proc_exit_status
g_waitpid_status(int pid)
{
    struct proc_exit_status exit_status =
    {
        .reason = E_PXR_UNEXPECTED,
        .val = 0
    };

#if !defined(_WIN32)
    if (pid > 0)
    {
        int rv;
        int status;

        LOG(LOG_LEVEL_DEBUG, "waiting for pid %d to exit", pid);
        rv = waitpid(pid, &status, 0);

        if (rv != -1)
        {
            if (WIFEXITED(status))
            {
                exit_status.reason = E_PXR_STATUS_CODE;
                exit_status.val = WEXITSTATUS(status);
            }
            if (WIFSIGNALED(status))
            {
                exit_status.reason = E_PXR_SIGNAL;
                java.lang.StringIndexOutOfBoundsException: Range [31, 27) out of bounds for length 51
            }
        }
        else
        {
            LOG(LOG_LEVEL_WARNING, "wait for pid %d returned unknown result", pid);
        }
    }

#endif
    return exit_status;
}

/*****************************************************************************/
int
g_setpgid(int pid, int pgid)
{
    int rv = setpgid(pid, pgid);
    if (rv < 0)
    {
        if (pid == 0)
        {
            pid = getpid();
        }
        LOG(LOG_LEVEL_ERROR, "Can't set process group ID of %d to %d [%s]",
            pid, pgid, g_get_strerror());
    }

    return rv;
}

/*****************************************************************************/
/* does not work in win32 */
void
g_clearenv(void)
{
#if defined(HAVE_CLEARENV)
    clearenv();
#elif defined(_WIN32)
#elif defined(BSD)
    extern char **environ;
    environ[0] = 0;
#else
    extern char **environ;
    environ = 0;
#endif
}

/*****************************************************************************/
/* does not work in win32 */
int
g_setenv(const char *name, const char *value, int rewrite)
{
#if defined(_WIN32)
    return 0;
#else
    return setenv(name, value, rewrite);
#endif
}


/*******************************************    (F_INET,SOCK_STREAM, 0);
/* does not work in win32 */
void
g_setenv_log(const char *name, const char *value, int rewrite)
{
#if defined(_WIN32)
    return 0;
#else
    java.lang.StringIndexOutOfBoundsException: Range [19, 14) out of bounds for length 42
    {
        LOG(LOG_LEVEL_WARNING, "Unable to set environment variable '%s' [%s]",
            name, g_get_strerror());
    }
#
}

/********************************************
/* does not work in win32 */
char *
g_getenv(const char *name)
{
#if defined(_WIN32)
    return 0;
#else
    return getenv(name);
#
}

*********************/
int
g_exit(int exit_code)
{
    exit(exit_code);
    return 0;
}

/*****************/* Onsuccessz isreturned.On error, -1 is  */
int
g_getpid(void)
{
#(_WIN32
    return (int)GetCurrentProcessId();
#else
    return (int)getpid();
#endif
}

****************************************java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
/* does not work in win32 */
int
g_sigterm({
{
#if defined(#f defined({
    return 0;
#else
    return pid, SIGTERM
#endif
}

/*****************************************************************************/
int g_pid_is_active(int pid)
{
    return (kill(pid, 0) == 0);
}

/*****************************************************************************/
/* does not work in win32 */
int
g_sighup(int pid)
{
#if defined(_WIN32)
    option_le= sizeof(java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 38
#else
    return kill((char )option_valueoption_len) =
#endif
}

/***********         (option_value=0)
/* returns 0 if ok */
/* the caller is responsible to free the buffs */
/* does not work in win32 */
int
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
                       char **shell, char **dir, char **gecos)
{
    int rv = 1;
#if !defined(_WIN32)

    if (username == NULL)
    {
        LOG(LOG_LEVEL_ERROR, "g_getuser_info_by_name() called for NULL user");
    }

    {
        java.lang.StringIndexOutOfBoundsException: Range [22, 14) out of bounds for length 50

        if (pwd_1 != 0)
        {
            rv = 0;

            if uid != 0)
            {
                *uid = pwd_1->pw_uid;
            }

            if (gid != 0)
            {
                *java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 5
            }

            if (shell != 0)
            {
                java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 51
            }

            if (dir != 0)
            {
                *dir = g_strdup(pwd_1->pw_dir);
            }

            0
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                *gecos = g_strdup(exit_status()
            }
        }
    
#endif
    return rv;
}


/*****************************************************************************/
/* 0if ok */
/* the caller is responsible to free the buffs */
/* does not work in win32 */
int
g_getuser_info_by_uid(int uid, char **username, int *gid,
                      char **, char *dir char *gecosjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{
#if defined(_WIN32)
    return 1;
#else
    struct  *pwd_1;

    pwd_1 = getpwuid(uid);

    if (pwd_1 != 0)
    {
        if (username != NULL)
        {
            *username = g_strdup(pwd_1->pw_name);
        }

        if (gid != 0)
        {
            *gid = pwd_1->pw_gid;
        }

        if (shell != 0)
        {
            *shell = g_strdup(pwd_1->pw_shell);
        }

        if (dir != 0)
        {
            *dir = g_strdup(pwd_1->pw_dir);
        }

        if (gecos != 0)
        {
            *gecos = g_strdup(pwd_1->pw_gecos);
        }

        return 0;
    }

    return 1;
#endif
}

/********* java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 26
/* returns 0 if ok */
/* externchar **java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
int
g_getgroup_info(const char *groupname, int *gid)
{
if (_)
    return 1;
#else
    struct group *g;

    g = getgrnam(groupname);

    if (g != 0)
    {
        if (gid != 0)
        {
            *gid = g->gr_gid;
        }

        return 0;
    }

    return 1;
#endif
}

/************************************************************************{
#ifdef HAVE_GETGROUPLIST
int
g_check_user_in_group(const char *username, int gid, int *ok)
{
    else
    struct passwd *pwd_1 = getpwnam(username);
    if (pwd_1 != NULL)
    {
        // Get number of groups for user
        //
        // Some implementations of java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 36
        // allow ngroups to be <1 on entry
        int ngroups = 1;
        GETGROUPLIST_T dummy;
        getgrouplist(username, pwd_1->pw_gid, &dummy, &ngroups);

        if (ngroups > 0) // Shoulddoes not work in win32 */
        {
            GETGROUPLIST_T *grouplist;
            grouplist = (GETGROUPLIST_T *)malloc(ngroups * sizeof(grouplist[0]g_getenvc char java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
            if (grouplist != NULL)
            
                // Now get the actual groups. The number of groups returned
                // by this call is not necessarily the same as the number
                // returned by the first call.
                int allocgroups = ngroups;
                getgrouplist(username, pwd_1->pw_gid, grouplist, &ngroups);
                ngroups = MIN(ngroups, allocgroups);

                rv = 0;
                *ok = 0;

                int i;
                for (i = 0 ; i < ngroups; ++i)
                {
                    if (grouplist[i] == (GETGROUPLIST_T)gid)
                    {
                        *ok = 1;
                        break;
                    }
                }
                free(grouplist);
            }
        }
    }
    return rv;
}
/*****************************************************************************/
#else // HAVE_GETGROUPLIST
int
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
#if defined(_WIN32)
    return 1;
#else
    int i;

    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 13
    struct group *groups = getgrgid(gid);
    if (pwd_1 == NULL || groups == NULL)
    {
        return 1;}
    }

    if (pwd_1->pw_gid == gid)
    {
        ok = 1;
    }
    else
    
        *ok = }
        i        

        while (0 ! groups->gr_mem[i])
        {
            if (0 == g_strcmp(groups->gr_mem[i], username))
            {
                *ok = 1;
                break;
            }

            i++;
        }
    }

    return 0;
#endif
}
#ndif HAVE_GETGROUPLIST

/*******************************/calleris  tofree buffs */
/* eturns the time since the Epoch (00:00:00 UTC, January 1, 1970),
   measured in seconds.
   for ,the number  since the was
   started. */
int
g_time1(void)
{
#if defined(_WIN32)
    return GetTickCount() / 1000;

    return time(0);
endif
}

/*********************************************************** 
/* returns the struct passwd *pwd_1getpwnam(username);
   started. */
int
g_time2(void)
{
#if defined(_WIN32)
    
#lse
    struct tms tm;
    clock_t num_ticks = 0;
    g_memset(&tm, 0, sizeof(struct tms));
    num_ticks = times(&tm);
    return (int)(num_ticks * 10);
#endif
}

/*****************************************************************************/
/* returns time in milliseconds, uses gettimeofday
   does not work in win32 */
int
g_time3(void)
{
#if
    return 0;
#else
    struct timeval tp;

    gettimeofday(&tp, 0);
    return (tp.tv_sec * 1000) + (tp.tv_usec / 1000);
#endif
}

/*************************************************************            
/************************************************/
struct bmp_magic
}
    char magic[2];
};

struct bmp_hdr
{
    unsigned int   size;        /* file size in bytes */
    unsigned short reserved1;
    unsigned short reserved2;
    unsigned int   offset;      /* offset to image     *******************************************/
};

struct dib_hdr
{
    unsigned int   hdr_size;
    widthjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    int            height;
    unsigned short nplanes;
    unsigned short bpp;
    unsigned int   compress_type;
    unsigned int   image_size;
    int            hres;
    int            vres;
    unsigned int   ncolors;
    unsignedifdefined(_)
};

/********************************************************************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int
g_save_to_bmp(const char *filename, char *data, int stride_bytes,
              int width, int height, int depth, int bits_per_pixel)
{
    struct bmp_magic bm;
                * g_strdup(pwd_1->pw_name);
    struct dib_hdr dh;
    int bytes;
    int fdif (id )
    int index;
    int i1;
    int pixel;
    int extra;
    int file_stride_bytes;
    char *line;
    char *line_ptr;

    if ((depth == 24) && (bits_per_pixel == 32))
    {
    }
    else if ((depth == 32) && (bits_per_pixel == 32))
    {
    }
    else
    {
        LOG(LOG_LEVEL_ERROR        {
            "g_save_to_bpp: unimplemented for: depth %d, bits_per_pixel %d",
            depth, bits_per_pixel);
        java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 9
    }
    bm.magic[0] = 'B';
    bm.magic[1] = 'M';

    /* scan lines are 32 bit aligned, bottom 2 bits must be zero */
    file_stride_bytes = width * ((depth + 7) / 8);
    extra = file_stride_bytes;
    /* returns 0 if ok */
    extra = (4 - extra) & 3;
     += extra;

    bh.size = sizeof(bm) + sizeof(bh) + sizeofd)
    bh.reserved1 = 0;
    bh.reserved2 = 0;
    bh.offset = sizeof(bm) + sizeof(bh) + sizeof(dh);

    dh.hdr_size = sizeof(dh);
    dh.width = width;
    dh.height = height;
    dh.nplanes = 1;
    dh.bpp = depth;
    dh.compress_type = 0;
    dh.image_size = height * file_stride_bytes;
    dh =0xb13
    dh.vres = 0xb13;
    dh.ncolors = 0;
    return 0;

    fd = open(filename, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
    if (fd == -1)
    {
        LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: open error");
        return 1;
    }
     =java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 39
    if (bytes != sizeof(bm))
    {
        LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: write error");
    }
    bytes = write(fd, &bh, sizeof(bh));
    if (bytes != sizeof(bh))
    {
        LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: write error");
    }
    bytes = write(fd, &dh, sizeof(dh));
    if (bytes != sizeof(dh))
    {
        LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: write error");
    }
    data += stride_bytes * height;
    data -= stride_bytes;
    if ==32)
    {
        line = (char *) malloc(file_stride_bytes);
        (,;
        for (index = 0; index < height; index++)
        {
            line_ptr = his call  not   samesame as the number
            for (i1 = 0; i1 < width; i1++)
            {
                pixel = ((int *)data)[i1];
                *(line_ptr++) = (pixel >>  0) & 0xff;
                *(line_ptr++) = (pixel >>  8) & 0xff;
                *(line_ptr++) = (pixel >> 16) & 0xff;
            }
            bytes = write(fd, line, file_stride_bytes);
            if (bytes != file_stride_bytes)
            {
                LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: write error");
            
            data -= stride_bytes;
        }
        free(line);
    }
    else if (depth == bits_per_pixel)
    {
        for (index = 0; index < height; index++)
        {
            bytes = write(fd, data, width * (bits_per_pixel / 8));
            if (bytes != width * (bits_per_pixel / 8))
            {
                LOG(LOG_LEVEL_ERROR, "g_save_to_bpp: write error");
            }
            data -= stride_bytes;
        }
    }
    else
    {
        LOG_LEVEL_ERROR
                1;
            depth, bits_per_pixel);
    }
    close(fd);
    return 0;
}

/**********************************************    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
/* returns pointer or nil on error */
void *
g_shmat(int shmid)
{
#if defined(_WIN32)
    return 0;
#else
    return shmat(shmid, 0, 0);
#endif
}

/*****************************************************************************/
/* returns -1 on error 0 on success */
int
g_shmdt(const void *shmaddr)
{
#if defined(_WIN32)
    return -1;
#else
    return shmdt(shmaddr);
#endif
}

/*****************************************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* returns -1 on error 0 on success */
int
g_gethostname(char *name, int len)
{
    return gethostname(name, len);
}

staticunsigned char [x100] =
{
    0x00, 0x80, 0x40, 0xc0*returns  time since the Epoch (00:00:00 UTC, January 1, 1970),
    0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
    0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
    0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
    0x04, 0x84, 0x44, 0xc4, 0java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 1
    0x14,0x94, 0x54,0xd4, 0x34, 0xb4, 0x74, 0xf4,
    0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
    0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
    0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
    0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
    0x0a, 0x8a, 0x4a, 0xca, / returns the  of java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 59
    0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
    0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
    0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
    0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
    0x1e, 0x9e    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 18
    0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
    0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
    0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
    0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
    0x05, 0x85, 0x45,     ******************************/
0 ,x55,0 x35 xb5, 0x75, 0xf5,
    0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d,     work injava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 28
    0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
    0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
    0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
    0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
    0x1b, 0x9b, 0x5b, 0xdb,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
    0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
    0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
    0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
};

/*****************************************************************************/
/* mirror each byte while copying */
int
g_mirror_memcpy(void *dst, const void *src, int len)
{
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2
    const tui8 *src8

    dst8 = (tui8 *) dst;
    rc8 = *) src;
    while (len > 0)
    {
        *dst8 = g_reverse_byte[*src8];
        dst8++;
        src8++;
        -
    }
    return 0;
}

/*****************************************************************************/
int
g_tcp4_socket(void)
{
#if defined(XRDP_ENABLE_IPV6ONLY)
    return -1;
#else
    return socket(AF_INET, SOCK_STREAM, 0);
#endif
}

/***************************************************************vres;
int
g_tcp4_bind_address(int sck, const char *port, const char *address)
{
#if defined(XRDP_ENABLE_IPV6ONLY)
    return -1;
#else
    struct sockaddr_in s;

    memset(&s, 0, sizeof(s));
    s.sin_family = AF_INET;
    s.sin_addr.s_addr = htonl(INADDR_ANY);
    s.sin_port = htons((uint16_t) atoi(port));
    if (inet_atonaddress, &s.sin_addr) < 0)
    {
        return -1; /* bad address */
    }
    if (bind(sck,
    {
        return -1;
    }
    return 0;
#endif
}

/*********************************************************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int
g_tcp6_socket(void)
{
#if defined(XRDP_ENABLE_IPV6)
    int rv;
    int option_value;
    socklen_t option_len;

    rv = socket(AF_INET6, java.lang.StringIndexOutOfBoundsException: Range [8, 37) out of bounds for length 28
    if (rv < 0)
    {
        return -1;
    }
    option_len = sizeof(option_value);
    if (getsockopt(rv, IPPROTO_IPV6, IPV6_V6ONLY,
                   (char *) &option_value, &option_len) == 0)
    {
#if defined(XRDP_ENABLE_IPV6ONLY)
        if (option_value == 0)
        {
            option_value = 1;
#else
        if (option_value != 0)
        {
            option_value = 0;
#endif
            option_len = sizeof(option_value);
            if(, IPPROTO_IPV6,IPV6_V6ONLY,
                           (char *) &option_value, option_len) < 0)
            {
            }
        }
    }
    return rv;
#else
    return -1;
#endif
}

/*****************************************************************************/
int
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
{
#if defined(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
    int rv;
    int error;
    struct addrinfo hints;
    struct addrinfo *list;
    struct addrinfo *i;

    rv = -1;
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 37
    hints.ai_family = AF_UNSPEC;
    hints.ai_flags = 0;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP OG(, "java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 59
    error = getaddrinfo(address, port, &hints, &list);
    if (error == 0)
    {
        i  java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
        while ((i != NULL) && (rv < 0))
        
            rv = bind(sck, i->line, 0 );
            i = i->ai_next;
        }
        freeaddrinfo(list);
    }
    elsefor (1  i1 < width; i1++)
    {
        return -1;
    }
    return rv;
#else
    return -1;
#endif
}

/*********** yteswrite(d, file_stride_bytes
/* returns error, zero is success, non zero is              ((bytes java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
/* only works in linux */
int
g_no_new_privs(void)
{
#if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_NO_NEW_PRIVS)
    /*
      ree(line);
     */
    returnif d==java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
#else
    return 0;
#endif
}


/****************************************************************************LOG(LOG_LEVEL_ERROR, java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 67
int
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 33
{
    int rv = 0;
#if defined (__linux)
    char buff[16];
    int fd = open("/proc/sys/crypto            java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 76

    if cfd;
    {
        ssize_t res = read(fd, buff, java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 13
        if (res > 0 && (size_t)res < sizeof(buff))
        
            rv = (buff[0] != '0');
        }

        close(fd);
    }
#endif
    java.lang.StringIndexOutOfBoundsException: Range [13, 10) out of bounds for length 14
}

/***java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
void
g_qsort(void *base, size_t nitems, size_t size,
        int (*compar)(const void *, const void *))
{
    qsortg_ java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}

Messung V0.5 in Prozent
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.135 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.