1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

161 Commits

Author SHA1 Message Date
Volker Lendecke
0e4ab9a5ac r20626: Fix a memleak found by the IBM checker -- not on 3.0.24
(This used to be commit 9d0a789e32)
2007-10-10 12:16:59 -05:00
Herb Lewis
e59e787b48 r20269: merge -r20264:20267 from SAMBA_3_0_24
more no previous prototype warnings
(This used to be commit 41be182f78)
2007-10-10 12:16:38 -05:00
Volker Lendecke
ed7e7efd20 r20210: registry_fetch_values is not needed anymore, fix typo
(This used to be commit 77e556f4a3)
2007-10-10 12:16:32 -05:00
Volker Lendecke
5ee2748106 r20209: Fix two memleaks
(This used to be commit 92bc870768)
2007-10-10 12:16:32 -05:00
Volker Lendecke
5b1f85a832 r20037: Reduce code size slightly by shuffling stuff around
(This used to be commit 0742faaacd)
2007-10-10 12:16:22 -05:00
Volker Lendecke
2494868ffb r20020: Arglll... eventlogadm links against reg_db but not the rest of the registry
stuff. Revert the last change.

This needs better fixing.

Volker
(This used to be commit ad1e00430b)
2007-10-10 12:16:21 -05:00
Volker Lendecke
61bd0c8e45 r20019: Replace one set of tricky code by calls to another set of tricky code:
Initializing the reg_db now uses reg_createkey and reg_setvalue.

Volker
(This used to be commit cab5ccbbe4)
2007-10-10 12:16:21 -05:00
Volker Lendecke
b0a6049391 r20018: Fix a memleak in reg_createkey
(This used to be commit 281640823b)
2007-10-10 12:16:21 -05:00
Volker Lendecke
4a272ef0a8 r20016: Add two utility functions for easy opening/creating registry keys
(This used to be commit ad22a46718)
2007-10-10 12:16:20 -05:00
Volker Lendecke
9690500e57 r20005: reg_open_path should become the replacement for regkey_open_internal.
(This used to be commit a6039eb46c)
2007-10-10 12:16:19 -05:00
Volker Lendecke
1a66ed34cd r20004: Remove a const, "name" is allocated anyway
(This used to be commit dc0300ec70)
2007-10-10 12:16:19 -05:00
Volker Lendecke
ecf90c495e r19991: Sorry for this 2000-liner...
The main thing here is a rewrite of srv_winreg_nt.c. The core functionality
has moved to registry/reg_api.c which is then usable by the rest of Samba as
well.

On that way it fixes creating keys with more than one element in the
path. This did not work before.

Two things that sneaked in (sorry :-) is the change of some routines from
NTSTATUS to WERROR the removed "parent" argument to regkey_open_internal.

Volker
(This used to be commit fea52801de)
2007-10-10 12:16:18 -05:00
Volker Lendecke
e57de5730c r19990: Fix comment
(This used to be commit 8b3d860f27)
2007-10-10 12:16:18 -05:00
Volker Lendecke
575845ccbe r19963: Add 'registry shares = yes' and registry key security descriptors.
(This used to be commit 6cab254c49)
2007-10-10 12:16:16 -05:00
Volker Lendecke
4a42371c20 r19948: Fix a memleak
(This used to be commit fd429c8c06)
2007-10-10 12:16:15 -05:00
Volker Lendecke
1c91cca86e r19947: Change regkey_open_internal to take the parent key and a talloc_ctx as
arguments. This also replaces regkey_close_internal by TALLOC_FREE.

Volker
(This used to be commit a177bbb2d5)
2007-10-10 12:16:14 -05:00
Volker Lendecke
213bc9d440 r19913: Fix a const warning
(This used to be commit a660993d14)
2007-10-10 12:16:08 -05:00
Volker Lendecke
b189e6d76e r19912: Move the subkey cache to srv_winreg_nt.c
(This used to be commit 01a53590a6)
2007-10-10 12:16:08 -05:00
Volker Lendecke
015534e254 r19872: Move the value cache to srv_winreg_nt.c. Fix some minor issues found while
playing with regedit.exe.

Volker
(This used to be commit 81bd816fa2)
2007-10-10 12:16:03 -05:00
Volker Lendecke
fb904d2299 r19858: Fix a memleak, add a const
(This used to be commit ed4dc40512)
2007-10-10 12:16:03 -05:00
Volker Lendecke
969a7faa7c r19853: Update a link
(This used to be commit ce44158dde)
2007-10-10 12:16:02 -05:00
Volker Lendecke
7a19259051 r19841: Wrap regdb_store_keys and regdb_store_values in tdb transactions
(This used to be commit 5ec7379220)
2007-10-10 12:16:01 -05:00
Volker Lendecke
9e29e5d2b8 r19839: Fix the build, we are not there yet :-)
(This used to be commit ff4123c8f2)
2007-10-10 12:16:01 -05:00
Volker Lendecke
45111ff1cb r19838: We have to delete the value record as well, otherwise the old values pop up
again if the key is re-created.

Volker
(This used to be commit f722f3341f)
2007-10-10 12:16:01 -05:00
Volker Lendecke
aad7194999 r19837: Some reformatting (Jerry, I hope you do not mind
(This used to be commit 6639f8c119)
2007-10-10 12:16:01 -05:00
Volker Lendecke
45fcd0f0b7 r19828: Add a helper function to pull *and* unparse local registry values
(This used to be commit 969eb9cda6)
2007-10-10 12:16:00 -05:00
Volker Lendecke
bfad442144 r19780: Ok, regkey_open_internal needs a regkey_close_internal. Giving a talloc ctx is
misleading here. This needs fixing properly :-)

Volker
(This used to be commit f808182346)
2007-10-10 12:15:55 -05:00
Volker Lendecke
76b320c8df r19779: Fail properly on talloc_strdup failure
(This used to be commit b57e446789)
2007-10-10 12:15:55 -05:00
Volker Lendecke
e82cd437cc r19778: Make regkey_open_internal take a talloc ctx
(This used to be commit cb7f4211b8)
2007-10-10 12:15:55 -05:00
Volker Lendecke
cbc03ec6df r19777: Make regsubkey_ctr_addkey return WERROR. Nobody checks this so far, but this
will change.

Volker
(This used to be commit 17c7c337f6)
2007-10-10 12:15:54 -05:00
Jelmer Vernooij
4db7642caa r18745: Use the Samba4 data structures for security descriptors and security descriptor
buffers.

Make security access masks simply a uint32 rather than a structure
with a uint32 in it.
(This used to be commit b41c52b9db)
2007-10-10 12:00:54 -05:00
Stefan Metzmacher
258a465e20 r18605: sync dlinklist.h with samba4, that means DLIST_ADD_END()
and DLIST_DEMOTE() now take the type of the tmp pointer
not the tmp pointer itself anymore.

metze
(This used to be commit 2f58645b70)
2007-10-10 11:51:59 -05:00
Jeremy Allison
2eff779b17 r17878: Fix possible null deref found by Stanford checker.
Jeremy.
(This used to be commit ae20201494)
2007-10-10 11:38:56 -05:00
Jeremy Allison
5f925a0190 r17867: Fix null deref in error code path. Found by the
Stanford checker.
Jeremy.
(This used to be commit 09652dc71c)
2007-10-10 11:38:55 -05:00
Volker Lendecke
02eea79624 r17333: Some C++ warnings
(This used to be commit be9aaffdac)
2007-10-10 11:38:26 -05:00
Volker Lendecke
4f33673b41 r17047: Fix a typo and a possible NULL dereference
(This used to be commit c0d9114706)
2007-10-10 11:19:22 -05:00
Jeremy Allison
fbdcf2663b r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
to do the upper layer directories but this is what
everyone is waiting for....

Jeremy.
(This used to be commit 9dafb7f48c)
2007-10-10 11:19:14 -05:00
Jeremy Allison
68e4fc8066 r16650: Fix bug #3890 reported by jason@ncac.gwu.edu.
Jeremy.
(This used to be commit 590b58cb50)
2007-10-10 11:19:06 -05:00
Jeremy Allison
7d6856240b r16636: Fix bug #3884 reported by jason@ncac.gwu.edu
Jeremy.
(This used to be commit 7580eb947c)
2007-10-10 11:19:05 -05:00
Jeremy Allison
6a9b101dd6 r16634: Fix bug #3883 reported by jason@ncac.gwu.edu.
Jeremy.
(This used to be commit d04462f1d8)
2007-10-10 11:19:04 -05:00
Jeremy Allison
5fb4cc9dff r16603: Klockwork #2028. Fix null deref on error path.
Jeremy.
(This used to be commit 067feef343)
2007-10-10 11:19:03 -05:00
Volker Lendecke
1d21b9659b r16490: Fix a memleak and two typos
(This used to be commit 8cf364e602)
2007-10-10 11:18:57 -05:00
Jeremy Allison
f014291edd r16424: Fix possible null deref and a memory leak found by
examining Klockwork #1519. get_printer_subkeys()
could return zero without initializing it's return
pointer arg. Fixed this. Added free of subkey pointer
return in registry/reg_printing.c (interesting that
neithe Coverity or Klocwork found this one).
Jeremy.
(This used to be commit 4fbeae1a3a)
2007-10-10 11:18:52 -05:00
Volker Lendecke
3c34f6085a r16409: Fix Klocwork ID's.
1177

In reg_perfcount.c: 1200 1202 1203 1204
In regfio.c: 1243 1245 1246 1247 1251

Jerry, the reg_perfcount and regfio.c ones, can you take a look please? This
is really your code, and I'm not sure I did the right thing to return an
error.

smbcacls.c: 1377
srv_eventlog_nt.c: 1415 1416 1417
srv_lsa_nt.c: 1420 1421
srv_netlog_nt.c: 1429
srv_samr_nt: 1458 1459 1460

Volker

Volker
(This used to be commit d6547d12b1)
2007-10-10 11:18:52 -05:00
Volker Lendecke
30832e95dc r15104: Implement Samba4's tdb_name().
Volker
(This used to be commit d52002c1c9)
2007-10-10 11:16:23 -05:00
Jeremy Allison
68dcff3f3a r14768: Fix potential null deref coverity bugs #255, #256.
Jeremy.
(This used to be commit a40c7a0cd8)
2007-10-10 11:15:47 -05:00
Jeremy Allison
e4c66fe4ca r14766: Fix possible NULL deref. Coverity #254.
Jeremy.
(This used to be commit e2e2d8b939)
2007-10-10 11:15:47 -05:00
Volker Lendecke
db249de135 r14247: Fix Coverity bug # 136
(This used to be commit 1b247ff2ed)
2007-10-10 11:15:20 -05:00
Jeremy Allison
2615b079f0 r13978: Here is why it's essential to use SAFE_FREE instead of free.
If we use free(data.dptr) and then the subsequent tdb_open
fails in _reg_perfcount_get_counter_data() then data.dptr
is left as a non-zero pointer that has been freed. This would
cause it to be reused later on. Coverity bug #162.
Jeremy.
(This used to be commit 053efc2098)
2007-10-10 11:11:02 -05:00
Jeremy Allison
894358a8f3 r13915: Fixed a very interesting class of realloc() bugs found by Coverity.
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 1d710d06a2)
2007-10-10 11:10:59 -05:00