Changeset 228 for branches/samba-3.2.x/source/lib
- Timestamp:
- May 26, 2009, 9:44:50 AM (16 years ago)
- Location:
- branches/samba-3.2.x/source/lib
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/source/lib/charcnv.c
r149 r228 1184 1184 *ppdest = NULL; 1185 1185 1186 if (!src_len) { 1187 return 0; 1188 } 1189 1186 1190 if (flags & STR_TERMINATE) { 1187 1191 if (src_len == (size_t)-1) { … … 1201 1205 smb_panic(msg); 1202 1206 } 1203 } 1207 } else { 1208 /* Can't have an unlimited length 1209 * non STR_TERMINATE'd. 1210 */ 1211 if (src_len == (size_t)-1) { 1212 errno = EINVAL; 1213 return 0; 1214 } 1215 } 1216 1217 /* src_len != -1 here. */ 1204 1218 1205 1219 if (!convert_string_allocate(ctx, CH_DOS, CH_UNIX, src, src_len, &dest, 1206 &dest_len, True)) 1220 &dest_len, True)) { 1207 1221 dest_len = 0; 1222 } 1208 1223 1209 1224 if (dest_len && dest) { 1210 1225 /* Did we already process the terminating zero ? */ 1211 1226 if (dest[dest_len-1] != 0) { 1212 dest[dest_len-1] = 0; 1227 size_t size = talloc_get_size(dest); 1228 /* Have we got space to append the '\0' ? */ 1229 if (size <= dest_len) { 1230 /* No, realloc. */ 1231 dest = TALLOC_REALLOC_ARRAY(ctx, dest, char, 1232 dest_len+1); 1233 if (!dest) { 1234 /* talloc fail. */ 1235 dest_len = (size_t)-1; 1236 return 0; 1237 } 1238 } 1239 /* Yay - space ! */ 1240 dest[dest_len] = '\0'; 1241 dest_len++; 1213 1242 } 1214 1243 } else if (dest) { … … 1558 1587 smb_panic("Bad src length in pull_ucs2_base_talloc\n"); 1559 1588 } 1560 } 1589 } else { 1590 /* Can't have an unlimited length 1591 * non STR_TERMINATE'd. 1592 */ 1593 if (src_len == (size_t)-1) { 1594 errno = EINVAL; 1595 return 0; 1596 } 1597 } 1598 1599 /* src_len != -1 here. */ 1561 1600 1562 1601 /* ucs2 is always a multiple of 2 bytes */ 1563 if (src_len != (size_t)-1) { 1564 src_len &= ~1; 1565 } 1602 src_len &= ~1; 1566 1603 1567 1604 dest_len = convert_string_talloc(ctx, … … 1575 1612 dest_len = 0; 1576 1613 } 1577 1578 if (src_len == (size_t)-1)1579 src_len = dest_len*2;1580 1614 1581 1615 if (dest_len) { -
branches/samba-3.2.x/source/lib/debug.c
r149 r228 579 579 if (dbf) { 580 580 x_fflush(dbf); 581 (void) x_fclose(dbf); 581 if (dbf != x_stdout) { 582 (void) x_fclose(dbf); 583 } 582 584 } 583 585 … … 850 852 va_end(ap); 851 853 852 if (ret == -1) {854 if (ret != -1) { 853 855 syslog(priority, "%s", msgbuf); 854 856 } -
branches/samba-3.2.x/source/lib/dummysmbd.c
r133 r228 52 52 return NT_STATUS_OK; 53 53 } 54 55 struct event_context *smbd_event_context(void) 56 { 57 return NULL; 58 } 59 60 struct messaging_context *smbd_messaging_context(void) 61 { 62 return NULL; 63 } -
branches/samba-3.2.x/source/lib/interface.c
r204 r228 34 34 struct interface *i; 35 35 for (i=local_interfaces;i;i=i->next) { 36 if ( addr_equal(&i->ip,ip)) {36 if (sockaddr_equal(&i->ip,ip)) { 37 37 return true; 38 38 } … … 66 66 return i; 67 67 } 68 } else if ( addr_equal(&i->ip, ip)) {68 } else if (sockaddr_equal(&i->ip, ip)) { 69 69 return i; 70 70 } … … 94 94 struct interface *i; 95 95 for (i=local_interfaces;i;i=i->next) { 96 if ( addr_equal(&i->ip,pss)) {96 if (sockaddr_equal(&i->ip,pss)) { 97 97 struct sockaddr_in6 *psa6 = 98 98 (struct sockaddr_in6 *)pss; … … 389 389 390 390 for (i=0;i<total_probed;i++) { 391 if ( addr_equal(&ss, &probed_ifaces[i].ip)) {391 if (sockaddr_equal(&ss, &probed_ifaces[i].ip)) { 392 392 add_interface(&probed_ifaces[i]); 393 393 return; … … 442 442 443 443 /* Maybe the first component was a broadcast address. */ 444 if ( addr_equal(&ss_bcast, &ss) ||addr_equal(&ss_net, &ss)) {444 if (sockaddr_equal(&ss_bcast, &ss) || sockaddr_equal(&ss_net, &ss)) { 445 445 for (i=0;i<total_probed;i++) { 446 446 if (same_net(&ss, &probed_ifaces[i].ip, &ss_mask)) { -
branches/samba-3.2.x/source/lib/memcache.c
r136 r228 215 215 DLIST_REMOVE(cache->mru, e); 216 216 217 if (memcache_is_talloc(e->n)) { 218 DATA_BLOB cache_key, cache_value; 219 void *ptr; 220 221 memcache_element_parse(e, &cache_key, &cache_value); 222 SMB_ASSERT(cache_value.length == sizeof(ptr)); 223 memcpy(&ptr, cache_value.data, sizeof(ptr)); 224 TALLOC_FREE(ptr); 225 } 226 217 227 cache->size -= memcache_element_size(e->keylength, e->valuelength); 218 228 … … 277 287 278 288 if (value.length <= cache_value.length) { 289 if (memcache_is_talloc(e->n)) { 290 void *ptr; 291 SMB_ASSERT(cache_value.length == sizeof(ptr)); 292 memcpy(&ptr, cache_value.data, sizeof(ptr)); 293 TALLOC_FREE(ptr); 294 } 279 295 /* 280 296 * We can reuse the existing record … … 333 349 334 350 void memcache_add_talloc(struct memcache *cache, enum memcache_number n, 335 DATA_BLOB key, void *ptr) 336 { 337 memcache_add(cache, n, key, data_blob_const(&ptr, sizeof(ptr))); 351 DATA_BLOB key, void *pptr) 352 { 353 void **ptr = (void **)pptr; 354 void *p; 355 356 if (cache == NULL) { 357 cache = global_cache; 358 } 359 if (cache == NULL) { 360 return; 361 } 362 363 p = talloc_move(cache, ptr); 364 memcache_add(cache, n, key, data_blob_const(&p, sizeof(p))); 338 365 } 339 366 -
branches/samba-3.2.x/source/lib/netapi/getdc.c
r136 r228 61 61 (const char **)r->out.buffer, 62 62 &werr); 63 64 if (!NT_STATUS_IS_OK(status)) { 65 werr = ntstatus_to_werror(status); 66 } 67 63 68 done: 64 69 -
branches/samba-3.2.x/source/lib/popt_common.c
r136 r228 167 167 168 168 struct poptOption popt_common_version[] = { 169 { NULL, 0, POPT_ARG_CALLBACK , (void *)popt_common_callback },169 { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_POST, (void *)popt_common_callback }, 170 170 { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, 171 171 POPT_TABLEEND -
branches/samba-3.2.x/source/lib/readline.c
r133 r228 46 46 #endif /* HAVE_NEW_LIBREADLINE */ 47 47 48 static bool smb_rl_done; 49 50 #if HAVE_LIBREADLINE 51 /* 52 * * MacOS/X does not have rl_done in readline.h, but 53 * * readline.so has it 54 * */ 55 extern int rl_done; 56 #endif 57 58 void smb_readline_done(void) 59 { 60 smb_rl_done = true; 61 #if HAVE_LIBREADLINE 62 rl_done = 1; 63 #endif 64 } 65 48 66 /**************************************************************************** 49 67 Display the prompt and wait for input. Call callback() regularly … … 70 88 } 71 89 72 while ( 1) {90 while (!smb_rl_done) { 73 91 timeout.tv_sec = 5; 74 92 timeout.tv_usec = 0; … … 88 106 } 89 107 } 108 SAFE_FREE(line); 109 return NULL; 90 110 } 91 111 -
branches/samba-3.2.x/source/lib/replace/autoconf-2.60.m4
r133 r228 180 180 # Enable extensions on systems that normally disable them, 181 181 # typically due to standards-conformance issues. 182 m4_ifndef([AC_USE_SYSTEM_EXTENSIONS],[ 182 183 AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], 183 184 [ … … 209 210 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) 210 211 ]) 212 ]) -
branches/samba-3.2.x/source/lib/smbldap.c
r141 r228 1024 1024 bool reopen = False; 1025 1025 SMB_ASSERT(ldap_state); 1026 1027 #ifndef NO_LDAP_SECURITY1028 if (geteuid() != 0) {1029 DEBUG(0, ("smbldap_open: cannot access LDAP when not root\n"));1030 return LDAP_INSUFFICIENT_ACCESS;1031 }1032 #endif1033 1026 1034 1027 if ((ldap_state->ldap_struct != NULL) && ((ldap_state->last_ping + SMBLDAP_DONT_PING_TIME) < time(NULL))) { -
branches/samba-3.2.x/source/lib/socket_wrapper/socket_wrapper.c
r133 r228 626 626 const unsigned char *payload, 627 627 size_t payload_len, 628 unsigned long tcp_seq ,628 unsigned long tcp_seqno, 629 629 unsigned long tcp_ack, 630 630 unsigned char tcp_ctl, … … 725 725 packet->ip.p.tcp.source_port = src_port; 726 726 packet->ip.p.tcp.dest_port = dest_port; 727 packet->ip.p.tcp.seq_num = htonl(tcp_seq );727 packet->ip.p.tcp.seq_num = htonl(tcp_seqno); 728 728 packet->ip.p.tcp.ack_num = htonl(tcp_ack); 729 729 packet->ip.p.tcp.hdr_length = 0x50; /* 5 * 32 bit words */ … … 788 788 const struct sockaddr_in *dest_addr; 789 789 const char *file_name; 790 unsigned long tcp_seq = 0;790 unsigned long tcp_seqno = 0; 791 791 unsigned long tcp_ack = 0; 792 792 unsigned char tcp_ctl = 0; … … 813 813 dest_addr = (const struct sockaddr_in *)addr; 814 814 815 tcp_seq = si->io.pck_snd;815 tcp_seqno = si->io.pck_snd; 816 816 tcp_ack = si->io.pck_rcv; 817 817 tcp_ctl = 0x02; /* SYN */ … … 827 827 src_addr = (const struct sockaddr_in *)addr; 828 828 829 tcp_seq = si->io.pck_rcv;829 tcp_seqno = si->io.pck_rcv; 830 830 tcp_ack = si->io.pck_snd; 831 831 tcp_ctl = 0x12; /** SYN,ACK */ … … 842 842 843 843 /* Unreachable: resend the data of SWRAP_CONNECT_SEND */ 844 tcp_seq = si->io.pck_snd - 1;844 tcp_seqno = si->io.pck_snd - 1; 845 845 tcp_ack = si->io.pck_rcv; 846 846 tcp_ctl = 0x02; /* SYN */ … … 855 855 dest_addr = (const struct sockaddr_in *)addr; 856 856 857 tcp_seq = si->io.pck_snd;857 tcp_seqno = si->io.pck_snd; 858 858 tcp_ack = si->io.pck_rcv; 859 859 tcp_ctl = 0x10; /* ACK */ … … 867 867 src_addr = (const struct sockaddr_in *)addr; 868 868 869 tcp_seq = si->io.pck_rcv;869 tcp_seqno = si->io.pck_rcv; 870 870 tcp_ack = si->io.pck_snd; 871 871 tcp_ctl = 0x02; /* SYN */ … … 881 881 dest_addr = (const struct sockaddr_in *)addr; 882 882 883 tcp_seq = si->io.pck_snd;883 tcp_seqno = si->io.pck_snd; 884 884 tcp_ack = si->io.pck_rcv; 885 885 tcp_ctl = 0x12; /* SYN,ACK */ … … 895 895 src_addr = (const struct sockaddr_in *)addr; 896 896 897 tcp_seq = si->io.pck_rcv;897 tcp_seqno = si->io.pck_rcv; 898 898 tcp_ack = si->io.pck_snd; 899 899 tcp_ctl = 0x10; /* ACK */ … … 905 905 dest_addr = (const struct sockaddr_in *)si->peername; 906 906 907 tcp_seq = si->io.pck_snd;907 tcp_seqno = si->io.pck_snd; 908 908 tcp_ack = si->io.pck_rcv; 909 909 tcp_ctl = 0x18; /* PSH,ACK */ … … 924 924 } 925 925 926 tcp_seq = si->io.pck_rcv;926 tcp_seqno = si->io.pck_rcv; 927 927 tcp_ack = si->io.pck_snd; 928 928 tcp_ctl = 0x14; /** RST,ACK */ … … 938 938 } 939 939 940 tcp_seq = si->io.pck_rcv;940 tcp_seqno = si->io.pck_rcv; 941 941 tcp_ack = si->io.pck_snd; 942 942 tcp_ctl = 0x14; /* RST,ACK */ … … 948 948 src_addr = (const struct sockaddr_in *)si->peername; 949 949 950 tcp_seq = si->io.pck_rcv;950 tcp_seqno = si->io.pck_rcv; 951 951 tcp_ack = si->io.pck_snd; 952 952 tcp_ctl = 0x18; /* PSH,ACK */ … … 964 964 } 965 965 966 tcp_seq = si->io.pck_rcv;966 tcp_seqno = si->io.pck_rcv; 967 967 tcp_ack = si->io.pck_snd; 968 968 tcp_ctl = 0x14; /* RST,ACK */ … … 1000 1000 dest_addr = (const struct sockaddr_in *)si->peername; 1001 1001 1002 tcp_seq = si->io.pck_snd;1002 tcp_seqno = si->io.pck_snd; 1003 1003 tcp_ack = si->io.pck_rcv; 1004 1004 tcp_ctl = 0x11; /* FIN, ACK */ … … 1014 1014 src_addr = (const struct sockaddr_in *)si->peername; 1015 1015 1016 tcp_seq = si->io.pck_rcv;1016 tcp_seqno = si->io.pck_rcv; 1017 1017 tcp_ack = si->io.pck_snd; 1018 1018 tcp_ctl = 0x11; /* FIN,ACK */ … … 1028 1028 dest_addr = (const struct sockaddr_in *)si->peername; 1029 1029 1030 tcp_seq = si->io.pck_snd;1030 tcp_seqno = si->io.pck_snd; 1031 1031 tcp_ack = si->io.pck_rcv; 1032 1032 tcp_ctl = 0x10; /* ACK */ … … 1041 1041 packet = swrap_packet_init(&tv, src_addr, dest_addr, si->type, 1042 1042 (const unsigned char *)buf, len, 1043 tcp_seq , tcp_ack, tcp_ctl, unreachable,1043 tcp_seqno, tcp_ack, tcp_ctl, unreachable, 1044 1044 &packet_len); 1045 1045 if (!packet) { -
branches/samba-3.2.x/source/lib/util_pw.c
r133 r228 45 45 struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name) 46 46 { 47 struct passwd * temp, *cached;47 struct passwd *pw, *for_cache; 48 48 49 temp= (struct passwd *)memcache_lookup_talloc(49 pw = (struct passwd *)memcache_lookup_talloc( 50 50 NULL, GETPWNAM_CACHE, data_blob_string_const(name)); 51 if ( temp!= NULL) {52 return tcopy_passwd(mem_ctx, temp);51 if (pw != NULL) { 52 return tcopy_passwd(mem_ctx, pw); 53 53 } 54 54 55 temp= sys_getpwnam(name);56 if ( temp== NULL) {55 pw = sys_getpwnam(name); 56 if (pw == NULL) { 57 57 return NULL; 58 58 } 59 59 60 cached = tcopy_passwd(NULL, temp); 61 if (cached == NULL) { 62 /* 63 * Just don't add this into the cache, ignore the failure 64 */ 65 return temp; 60 for_cache = tcopy_passwd(NULL, pw); 61 if (for_cache == NULL) { 62 return NULL; 66 63 } 67 64 68 65 memcache_add_talloc(NULL, GETPWNAM_CACHE, data_blob_string_const(name), 69 cached); 70 return tcopy_passwd(mem_ctx, temp); 66 &for_cache); 67 68 return tcopy_passwd(mem_ctx, pw); 71 69 } 72 70 -
branches/samba-3.2.x/source/lib/util_sid.c
r149 r228 665 665 } 666 666 667 bool is_sid_in_token(const NT_USER_TOKEN *token, const DOM_SID *sid) 668 { 669 int i; 670 671 for (i=0; i<token->num_sids; i++) { 672 if (sid_compare(sid, &token->user_sids[i]) == 0) 673 return true; 674 } 675 return false; 676 } 677 667 678 NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx, 668 679 const struct netr_SamInfo3 *info3, -
branches/samba-3.2.x/source/lib/util_sock.c
r204 r228 235 235 #endif 236 236 237 zero_ addr(pss);237 zero_sockaddr(pss); 238 238 239 239 if (!interpret_string_addr_internal(&res, str, flags|AI_ADDRCONFIG)) { … … 335 335 ******************************************************************/ 336 336 337 void zero_ addr(struct sockaddr_storage *pss)337 void zero_sockaddr(struct sockaddr_storage *pss) 338 338 { 339 339 memset(pss, '\0', sizeof(*pss)); … … 430 430 ********************************************************************/ 431 431 432 bool addr_equal(const struct sockaddr_storage *ip1,433 const struct sockaddr_storage *ip2)432 bool sockaddr_equal(const struct sockaddr_storage *ip1, 433 const struct sockaddr_storage *ip2) 434 434 { 435 435 if (ip1->ss_family != ip2->ss_family) { … … 1660 1660 continue; 1661 1661 } 1662 if ( addr_equal((const struct sockaddr_storage *)res->ai_addr,1662 if (sockaddr_equal((const struct sockaddr_storage *)res->ai_addr, 1663 1663 pss)) { 1664 1664 freeaddrinfo(ailist); … … 1773 1773 1774 1774 /* it might be the same as the last one - save some DNS work */ 1775 if ( addr_equal(&ss, &nc.ss)) {1775 if (sockaddr_equal(&ss, &nc.ss)) { 1776 1776 return nc.name ? nc.name : "UNKNOWN"; 1777 1777 } … … 2097 2097 n = get_interfaces(nics, MAX_INTERFACES); 2098 2098 for (i=0; i<n; i++) { 2099 if ( addr_equal(&nics[i].ip, &ss)) {2099 if (sockaddr_equal(&nics[i].ip, &ss)) { 2100 2100 TALLOC_FREE(nics); 2101 2101 return true;
Note:
See TracChangeset
for help on using the changeset viewer.