| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
When running 'make distcheck', all files in the $srcdir are set to
read-only, to ensure that the build does not modify the source.
However, this broke our ability to test file permissions. We will
now copy the file to the builddir and do the tests there, where
we have control.
|
| |
|
| |
|
|
|
|
|
|
| |
A Coverity check indicated that ther are platforms where strerror() will
return NULL for unknown, e.g. negative error numbers. Chances are that
these platforms will have problems with NULL arguments to printf() too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
directory, was based on count, now limited to segment_count.
* Do not pre-allocate all buckets based on requested table size. This
defeats the point of a dynamic hash table which adjusts it's memory
usage depending upon the number of items it holds. Pre-allocation
also runs afoul of the table contraction logic, if the table is
pre-allocated to a large size it will subsequently try to compact it
negating the pre-allocation. Now the initial allocation is
restricted to one directory segment (i.e. table->segment_count == 1)
* If the caller did not specify the directory_bits and segment_bits
then compute them from the requested table size. The directory_size
and segment_size must be powers of 2 to accmodate fast
arithmetic. An optimal maximum number of buckets would be equal to
the anticipated table size. If there were no collisions that would
mean each item would be located in it's own bucket whose chain
length is 1, the item would be immediatly found upon indexing into
the bucket table.
* There is a requirment there be at least one directory
segment, however contract_table() failed to enforce this
requirement. Add a check to enforce the requirement.
* If hash_create() or hash_create_ex() failed it left the tbl
parameter uninitialized but returned an error code. Now upon failure
tbl is initialized to NULL as well as returning an error code.
* Clean up how the directory and segment sizes were computed. It had
been using a loop and shifting 1 bit at a time, now it shifts all
the bits in one operation and assures at least one directory and
segment are allocated.
* In the event of an early exit from hash_create_ex() due to an error
make sure all previously allocated resources are cleaned up by
calling hash_destroy(). There was only one place this was
missing. hash_destroy() blindly assumed the table had a directory,
normally it would unless hash_destroy was called due to an early
exit in hash_create_ex(). Modify hash_destroy() to check for the
existence of the directory before cleaning up the directory
contents.
* Update the function documentation in dhash.h to explain each
parameter of hash_create() and hash_create_ex().
* Enhance dhash_test.c
- To output the random seed used to intialize the random number
generator and add command line option to set the random seed. This
permits recreating a failed test run.
- Add command line parameter to set the initial table size.
- Use proper string to long conversion routines when reading command
line parameters (e.g. strtoul() instead of atoi())
- Add logic to make sure each test value is unique.
* Add additional information to the debug output to show the computed
directory_bits, segment_bits, sizes, etc.
* Adjust the debug_level conditionals to be less verbose.
|
|
|
|
| |
Use correct macro instead of type casting.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The header structure might contain padding to align data on
the boundary of the word. It is unsafe to always print
the header data as it might be uninitialized.
I do not want to remove it as it might be handy some day
so I prefer to #ifdef it.
|
|
|
|
|
| |
This patch makes two internal functions
resusable from different source modules.
|
|
|
|
|
|
|
|
|
| |
It occured to me that one of the issues that Coverity
did not like (and I could not understand what it is
complaining about) is related to intializing the variables
in the loop.
This patch adds initialization in the loops.
Also there was an initialization missing in the ini_configobj.c
|
|
|
|
|
|
|
|
|
|
| |
All config file processing functions start with "ini_config".
The only function that does not comply is
ini_print_errors. We can't rename it since
it is a part of the current active interface.
I marked that function needs to be removed when we
remove old interface and created a copy with
the correct name. I also updated unit test accordingly.
|
|
|
|
|
| |
Patch adds two functions. One tests permissions,
another validates if the file has changed or not.
|
|
|
|
| |
Added function to detect changes to the configuration file.
|
|
|
|
|
|
| |
Added check access constants and the check access function.
The function is effectively copied from ini_metadata.c
The flags are copied from ini_config.h
|
|
|
|
|
|
|
|
|
|
|
|
| |
After some more thinking I decided not to use
metadata collection. It seems to be an overhead.
Patch does following:
* Replaces metadata collection in file context structure
with standard file stats
* Removes all operations against old metadata collection
* Defines new flags for data to collect
* Creates a function that consolidates common operations
between open and reopen functions.
|
|
|
|
|
| |
This patch would allow to reopen file
and create a new context based on the old one.
|
|
|
|
| |
Allow closing file without destroying the context.
|
|
|
|
| |
Spotted style violation.
|
|
|
|
|
|
| |
New test reads smerge.conf in all possible
modes and compares the combined result with
the sexpect.conf function.
|
|
|
|
|
|
| |
Patch adds smerge.conf file to the list
of files to test and adds test for the DETECT
mode for inidividual values.
|
|
|
|
|
|
|
| |
smerge.conf - test file
sexpect.conf - file contains output of the smerge.conf
processed in different merge modes
for sections and values
|
|
|
|
|
| |
If in merge DETECT mode and there were no parsing errors
return error if there were merge collisions.
|
|
|
|
|
|
| |
This patch adds functionality to respect
merge section flags and to process section
collisions differently dpending on these flags.
|
|
|
|
|
| |
Use section line number for error reporting
about the section collisions.
|
|
|
|
|
|
|
|
|
| |
This patch refactores the value processing
function so that it can be used both in
normal mode when velues need to be constrcuted and
saved into the current section (po->sec) and in the
merge mode when values are already constructed
and need to be saved into a po->merge_sec.
|
|
|
|
|
|
|
|
| |
Patch implements three functions:
* Function to detect a collision between two section names.
* Function to empty section from all its keys
* Function to add values one by one from one section to
another.
|
|
|
|
|
|
| |
* Changed parse_error to use save_error function
created in previous commit.
* Fixed comment to be more clear.
|
|
|
|
| |
Create a function to add error into error list.
|
|
|
|
|
| |
Adding new varibles to the internal parsing structure
and initializing them.
|
|
|
|
|
|
|
| |
Adding "DETECT" merge modes.
These modes would be useable for dry run cases to detect
if there are any potential merge conflicts.
Patch just defines new constans and adds input checks.
|
|
|
|
|
|
|
|
| |
Patch consists of two parts:
* Adding new constants for error messages to ini_configobj.h file
* Making ini_print.c use this header file instead of the old one.
Converting this to enums is tracked as a separate ticket.
|
|
|
|
|
| |
The fact that the other_test could return EOK on error
was the actual problem.
|
|
|
|
| |
Also clean up the code a bit and add more comments
|
|
|
|
|
| |
* Do not set ext_data parameter to NULL
* include a private header to avoid implicit declarations
|
| |
|
|
|
|
| |
https://fedorahosted.org/sssd/ticket/1230
|
|
|
|
|
|
| |
This is the issue found by Coverity. If the proprty is NULL
but type is not there is dereferencing of the NULL veriable
in the check.
|
|
|
|
|
| |
Previous fix was not complete.
Secondary scan revealed other issues.
|
|
|
|
|
|
| |
Previous fix was not complete. New scan revealed
potential memory leak in case of coding error.
Low severity but still a bug...
|
|
|
|
| |
One liner to eliminate compilation warning.
|
|
|
|
|
|
|
|
| |
I decided not to redo the whole test.
It would have been too much work.
Just cleaned the code a bit and freed
allocated memory.
It is Coverity issue 10075.
|
|
|
|
|
|
| |
The newly created value object was not freed
in case of an error.
Coverity issue 10076.
|
|
|
|
|
|
|
|
|
| |
Allocating simple buffer is not enough.
It needs to be initialized with something.
The patch does exactly this for the case when
the empty comment string is represented by a NULL
value in the function input variable.
Coverity issue 10073.
|
|
|
|
|
| |
Addresses coverity issue 10048.
Patch should apply to master and 0.1.x.
|
|
|
|
| |
One liner to fix Coverity isssue 10044.
|
|
|
|
|
| |
Noticed under valgrind then checked
and saw that this is a coverity issue 10077.
|
|
|
|
|
|
| |
The 'len' varible was not initialized properly.
The ref_array_get function does not return error so
the error check is removed.
|
|
|
|
|
|
| |
The unit tests we actually not executed due to wrong
initialization. Also the pointers were not correctly
dereferenced in the string array test.
|