summaryrefslogtreecommitdiff
path: root/source3/torture/nsstest.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r13915: Fixed a very interesting class of realloc() bugs found by Coverity.Jeremy Allison1-0/+9
realloc can return NULL in one of two cases - (1) the realloc failed, (2) realloc succeeded but the new size requested was zero, in which case this is identical to a free() call. The error paths dealing with these two cases should be different, but mostly weren't. Secondly the standard idiom for dealing with realloc when you know the new size is non-zero is the following : tmp = realloc(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } However, there were *many* *many* places in Samba where we were using the old (broken) idiom of : p = realloc(p, size) if (!p) { return error; } which will leak the memory pointed to by p on realloc fail. This commit (hopefully) fixes all these cases by moving to a standard idiom of : p = SMB_REALLOC(p, size) if (!p) { return error; } Where if the realloc returns null due to the realloc failing or size == 0 we *guarentee* that the storage pointed to by p has been freed. This allows me to remove a lot of code that was dealing with the standard (more verbose) method that required a tmp pointer. This is almost always what you want. When a realloc fails you never usually want the old memory, you want to free it and get into your error processing asap. For the 11 remaining cases where we really do need to keep the old pointer I have invented the new macro SMB_REALLOC_KEEP_OLD_ON_ERROR, which can be used as follows : tmp = SMB_REALLOC_KEEP_OLD_ON_ERROR(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } SMB_REALLOC_KEEP_OLD_ON_ERROR guarentees never to free the pointer p, even on size == 0 or realloc fail. All this is done by a hidden extra argument to Realloc(), BOOL free_old_on_error which is set appropriately by the SMB_REALLOC and SMB_REALLOC_KEEP_OLD_ON_ERROR macros (and their array counterparts). It remains to be seen what this will do to our Coverity bug count :-). Jeremy. (This used to be commit 1d710d06a214f3f1740e80e0bffd6aab44aac2b0)
2007-10-10r6640: Attempt to fix 'make everything' with the paranoid malloc checker.Volker Lendecke1-7/+7
Volker (This used to be commit 3db2799822da3711b47b60ba13daa07205ced45f)
2003-07-23convert snprintf() calls using pstrings & fstringsGerald Carter1-2/+2
to pstr_sprintf() and fstr_sprintf() to try to standardize. lots of snprintf() calls were using len-1; some were using len. At least this helps to be consistent. (This used to be commit 9f835b85dd38cbe655eb19021ff763f31886ac00)
2003-07-22Fixup a bunch of printf-style functions and debugs to use unsigned long whenTim Potter1-7/+7
displaying pid_t, uid_t and gid_t values. This removes a whole lot of warnings on some of the 64-bit build farm machines as well as help us out when 64-bit uid/gid/pid values come along. (This used to be commit f93528ba007c8800a850678f35f499fb7360fb9a)
2003-06-20Back out some of the changes to nsstest. I've kept the NULL pointerTim Potter1-138/+8
dereference bugfixes but left out the gethostbyname (wins) tests pending a nicer way to integrate it. (This used to be commit a7e67aaffe13b2828861046013b51d62aa1db057)
2003-06-16Update nsstest to cope with wins NSS module as well as winbind NSSTim Potter1-12/+183
module. Use "wins" as the nss name to invoke this behaviour. Also, fixed nsstest so it doesn't segfault when a nss function can't be dlopened(). Log an error and abort the test gracefully instead. (This used to be commit 66bafbe371359bbdec402ae47bc15024bec33f4e)
2003-05-10Reverse previous patch from Stefan and me after comments by Andrew BartlettJelmer Vernooij1-2/+0
(This used to be commit d817eaf0ecca2d878ab1ffcf7a747a02d71c811e)
2003-05-10Patch from metze and me that adds dummy smb_register_*() functions soJelmer Vernooij1-0/+2
that is now possible to, for example, load a module which contains an auth method into a binary without the auth/ subsystem built in. (This used to be commit 74d9ecfe2dd7364643d32acb62ade957bd71cd0d)
2003-01-03Merge from HEAD - make Samba compile with -Wwrite-strings without additionalAndrew Bartlett1-2/+2
warnings. (Adds a lot of const). Andrew Bartlett (This used to be commit 3a7458f9472432ef12c43008414925fd1ce8ea0c)
2002-07-15updated the 3.0 branch from the head branch - ready for alpha18Andrew Tridgell1-2/+2
(This used to be commit 03ac082dcb375b6f3ca3d810a6a6367542bc23ce)
2002-01-30Removed version number from file header.Tim Potter1-2/+1
Changed "SMB/Netbios" to "SMB/CIFS" in file header. (This used to be commit 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
2001-12-19better nsstest error checkingAndrew Tridgell1-0/+20
(This used to be commit 7348a969bc994e6ef267449aadfdf6321c27baa6)
2001-12-09set return value to total errorsAndrew Tridgell1-2/+9
(This used to be commit 4a7e1f6bb12e74effad83410c4b07683eaaa4617)
2001-12-09better error checking in nsstestAndrew Tridgell1-9/+64
(This used to be commit 3c17c64e31cbd56ada4e4bc0d371cef81e2e42cf)
2001-12-09- check for correct error codesAndrew Tridgell1-27/+48
- handle no initgroups fn (This used to be commit 84a3390eace7f6cf1f5fb867fc58a982f24fd0b6)
2001-12-06allow nsstest to test any nss moduleAndrew Tridgell1-13/+19
(This used to be commit c531f4773e33cce4b4eb97c8f9147eed02edc2d5)
2001-12-03put sid_to_name behind the winbindd backend interfaceAndrew Tridgell1-2/+2
I spent quite a while trying to work out how to make this call via ldap and failed. I then found that MS servers seem use rpc for sid_to_name, and it works even when in native mode, I ended up just implementing it via rpc (This used to be commit 789833b44e342c0b5de463ed8f9b5f7474a99f27)
2001-12-03fixed default location of libnss_winbind.soAndrew Tridgell1-1/+1
(This used to be commit adc9268216f87d915c9d971137b859c949e150dd)
2001-12-03fixed the nsswitch initgroups codeAndrew Tridgell1-0/+302
added a nsstest test program that directly tests all the nss interfaces using dlopen() (This used to be commit aee19090d3b957372b234a412cd9db8896650feb)