]> gitweb.michael.orlitzky.com - apply-default-acl.git/commit
src/libadacl.c: use asprintf() instead of snprintf() for paths.
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 28 Mar 2018 01:03:01 +0000 (21:03 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 28 Mar 2018 01:03:01 +0000 (21:03 -0400)
commitd8b55a1ea987e0ac8915bd5b2597d85f2d81c85d
treed598376e635708e08073d2262101750abb4290a7
parent4e8d531d9561674cfa5fc4853bafcd3a2b949911
src/libadacl.c: use asprintf() instead of snprintf() for paths.

When constructing a path, there is an ancient problem: how do you
ensure that your path-name buffer is large enough, and what do you do
if it isn't? The existing solution was to use the PATH_MAX constant
from limits.h, which is often a big number, but need not actually be
defined. If a path exceeded PATH_MAX bytes, we would fail.

Now the GNU/BSD extension asprintf() is used instead. The path-name
buffer is constructed on-the-fly to be as large as necessary, and if
allocation fails, an error is returned. This solution is a little
cleaner, and is not too much less portable considering that we only
work on Linux anyway.
configure.ac
src/libadacl.c