Changeset 131 for trunk/src/sh_prelude.c


Ignore:
Timestamp:
Oct 22, 2007, 11:19:15 PM (17 years ago)
Author:
rainer
Message:

Use thread-safe libc functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_prelude.c

    r108 r131  
    8383#include "sh_error_min.h"
    8484#include "sh_prelude.h"
     85#define SH_NEED_PWD_GRP 1
     86#include "sh_static.h"
    8587
    8688/*
     
    138140        char * p;
    139141        char * dup = strdup (str);
     142#if defined(HAVE_PTHREAD) && defined (_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_STRTOK_R)
     143        char * saveptr;
     144#endif
    140145
    141146        if (!dup)
    142147                return -1;
    143148
     149#if defined(HAVE_PTHREAD) && defined (_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_STRTOK_R)
     150        p = strtok_r (dup, ", \t", &saveptr);
     151#else
    144152        p = strtok (dup, ", \t");
     153#endif
    145154        if (p) {
    146155                do {
     
    165174                                return -1;
    166175                        }
     176#if defined(HAVE_PTHREAD) && defined (_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_STRTOK_R)
     177                        p = strtok_r (NULL, ", \t", &saveptr);
     178#else
    167179                        p = strtok (NULL, ", \t");
     180#endif
    168181                } while (p);
    169182        }
     
    679692        idmef_node_t *node;
    680693        struct passwd *pw;
     694#if defined(HAVE_PTHREAD) && defined (_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_GETPWNAM_R)
     695        struct passwd pwd;
     696        char buffer[SH_PWBUF_SIZE];
     697#endif
    681698        prelude_string_t *str;
    682699        idmef_user_id_t *user_id;
     
    763780                idmef_user_id_set_type(user_id, IDMEF_USER_ID_TYPE_TARGET_USER);
    764781               
    765                 pw = getpwnam(ptr);
     782#if defined(HAVE_PTHREAD) && defined (_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_GETPWNAM_R)
     783                sh_getpwnam_r(ptr, &pwd, buffer, sizeof(buffer), &pw);
     784#else
     785                pw = sh_getpwnam(ptr);
     786#endif
    766787                if ( pw )
    767788                        idmef_user_id_set_number(user_id, pw->pw_uid);
Note: See TracChangeset for help on using the changeset viewer.