=================================================================== RCS file: /cvsroot/aolserver/aolserver/nsd/Attic/serv.c,v retrieving revision 1.15 retrieving revision 1.15.2.2 diff -c -r1.15 -r1.15.2.2 *** root/aolserver/nsd/serv.c 2001/01/16 18:14:27 1.15 nsd_v3_r3 --- root/aolserver/nsd/serv.c 2001/04/03 20:21:54 1.15.2.2 nsd_v3_r4_pre1 *************** *** 260,272 **** void NsGetBuf(char **bufPtr, int *sizePtr) { ! char *buf; static Ns_Tls tls; ! if (tls == NULL) { Ns_MasterLock(); ! if (tls == NULL) { Ns_TlsAlloc(&tls, ns_free); } Ns_MasterUnlock(); } --- 260,274 ---- void NsGetBuf(char **bufPtr, int *sizePtr) { ! static volatile int initialized = 0; static Ns_Tls tls; + char *buf; ! if (!initialized) { Ns_MasterLock(); ! if (!initialized) { Ns_TlsAlloc(&tls, ns_free); + initialized = 1; } Ns_MasterUnlock(); } *************** *** 933,939 **** ParseAuth(Conn *connPtr, char *auth) { register char *p, *q; ! char buf[0x100]; int n; char save; --- 935,941 ---- ParseAuth(Conn *connPtr, char *auth) { register char *p, *q; ! char *decoded; int n; char save; *************** *** 949,962 **** while (*q != '\0' && isspace(UCHAR(*q))) { ++q; } ! n = Ns_HtuuDecode(q, (unsigned char *) buf, sizeof(buf)); ! buf[n] = '\0'; ! q = strchr(buf, ':'); if (q != NULL) { *q++ = '\0'; connPtr->authPasswd = ns_strdup(q); } ! connPtr->authUser = ns_strdup(buf); } *p = save; } --- 951,967 ---- while (*q != '\0' && isspace(UCHAR(*q))) { ++q; } ! n = strlen(q) + 3; ! decoded = ns_malloc(n); ! n = Ns_HtuuDecode(q, (unsigned char *) decoded, n); ! decoded[n] = '\0'; ! q = strchr(decoded, ':'); if (q != NULL) { *q++ = '\0'; connPtr->authPasswd = ns_strdup(q); } ! connPtr->authUser = ns_strdup(decoded); ! ns_free(decoded); } *p = save; }