Width given in format string is larger than the destination buffer.
Type mismatch between scanf format specifier (unsigned long long) and the variable type (long long).
str*cpy / strlen performance fix.

Calculating length of a string two times is unnecessary, and using strncpy width known string length can be replaced with memcpy.
Variable type fix for fgetc.

Reading a single character is fine with fgetc. But if you want to check for EOF, then you have to use 'int' as type,
and if the return value is not EOF, then it can be cast to 'char'.

Example for fail scenario before the fix: if the file contains 0xff character, then the code will interpret it as EOF.
0xff can be banned, but this should be checked in a proper way and not in the reading code.
Preventing use-after-freed possibility.

Probably the original intention was to prevent the possibility of a use-after-freed bug.
But the last strs = NULL statement has no effect, because it's just a local copy.
However, it makes sense to put a similar solution inside the loop right after the memory release.
This way if some codes try to use a previously freed array, then the array will seem to be empty.
String lib performance fix: using memcpy when the length is known.

Using strncpy(target, string, strlen(string)) equals with memcpy(target, string, strlen(string).
Both of them remove the \0 from the end. But for longer string memcpy is definitely more efficient,
because it does not have to search for string termination.

Usually the performance difference is small, and this kind of code rarely used elsewhere,
but a string handling lib should be efficient.
Type fix: 'char*' should be used for string storing instead of 'char'.
Fix for an unlikely memory leak in a unit test.

1 or 2 hosts work fine, otherwise the reserved memory should be released.
(However, using not 1 or 2 is quite hypothetical.)
strncpy fixes: wrong buffer size, lack of termination and similar errors are fixed.

There are lot of fixes here, but they are in a few main category:
1, strncpy(target, source, TARGETSIZE-1)  -> strlcpy(target, source, TARGETSIZE)
   If the target's last byte is not \0, then the string will not be terminated.
2, strncpy(target, source, TARGETSIZE) -> strlcpy(target, source, TARGETSIZE)
   If the source is longer than the target, then the string will not get NUL termination
3, combination of memset + strncpy or strncpy + buffer[last_byte]=0 -> strlcpy
   It's ugly and inefficient but at least gives correct result.

Remark: the usual string length (e.g. variable name, path) is much shorter than the buffer size (1k or 4k)
Using strncpy is quite inefficient because it always fills the rest of the array with 0s.
If you definitely need this feature, then rather use a memset + strlcpy + comment.
(E.g. // I want to fill this whole buffer with 0s, because it contained a private key previously.)
strncpy / strncat inefficiencies.

strncpy with known length can be replace with memcpy.
manual \0 + strncat is ugly, and strlcpy just does the job well.
strncpy + manual termination -> strlcpy
A few more strncpy fixes: buffer size limit, termination, etc.
Memory leak fix in 'ConfigurationDestroy'.
Don't use "sudo -n" option, which is not supported by RHEL4.

It was added to avoid a password prompt when running tests. Jenkins
disables TTY access, so it should not be a problem there regardless,
but it may lead to cf-agent hanging on a password prompt when running
tests locally if sudoers is not set up correctly.

(cherry picked from commit 9a15c73ee7b2a494f559eeeb06fa38776f1bd564)
Fix leftover primary group causing trouble for later users tests.

(cherry picked from commit a79ef1d5e1fe8e6aecd1e7b89986cdf6a18c435e)
Remove leftover comments.

(cherry picked from commit dd7fca04f5125d4e031072ac911d1e5c39404cd7)
check for EINTR to avoid spinning in an empty file

(cherry picked from commit 04011143f8d56aab0eaf7ae3b1e70c27adbaa8f3)
add space for terminating null to fix AIX memory corruption

(cherry picked from commit 4c24a79c3387b4edc1e25bfb3415b925cba13c22)
Redmine#5776: pluck all the cp and dcp bodies

(cherry picked from commit 5dcd81d3aa981e679cca24843b217d9ca0a408e9)

Conflicts:
	tests/acceptance/Makefile.am
Redmine#5776: remove sync_cp usage due to conflicts

(cherry picked from commit 9d252396342b413c9a627770bb67463b1908d9ad)
Added some more new variables to the "new section":
 * sys.logdir
 * sys.piddir
(cherry picked from commit 6f9891f9274ab329b9f83150991052252362fb2c)