Re: [PATCH 02/11] gssd: Fix cccache buffer size

Steve Dickson
2020-07-20T14:44:05Z

Hey Doug,

On 7/18/20 5:24 AM, Doug Nazar wrote:
> Signed-off-by: Doug Nazar <nazard@nazar.ca>
> ---
> utils/gssd/krb5_util.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
> index e5b81823..34c81daa 100644
> --- a/utils/gssd/krb5_util.c
> +++ b/utils/gssd/krb5_util.c
> @@ -1225,7 +1225,7 @@ out:
> int
> gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername, char *dirpattern)
> {
> - char buf[PATH_MAX+2+256], dirname[PATH_MAX];
> + char buf[PATH_MAX+4+2+256], dirname[PATH_MAX];
> const char *cctype;
> struct dirent *d;
> int err, i, j;
>
Thanks for point this out but I think I'm going to go with this:

diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
index e5b8182..cd5a919 100644
--- a/utils/gssd/krb5_util.c
+++ b/utils/gssd/krb5_util.c
@@ -223,7 +223,8 @@ gssd_find_existing_krb5_ccache(uid_t uid, char *dirname,
int found = 0;
struct dirent *best_match_dir = NULL;
struct stat best_match_stat, tmp_stat;
- char buf[PATH_MAX+4+2+256];
+ /* dirname + cctype + d_name + NULL */
+ char buf[PATH_MAX+5+256+1];
char *princname = NULL;
char *realm = NULL;
int score, best_match_score = 0, err = -EACCES;
@@ -1225,7 +1226,8 @@ out:
int
gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername, char *dirpattern)
{
- char buf[PATH_MAX+2+256], dirname[PATH_MAX];
+ /* dirname + cctype + d_name + NULL */
+ char buf[PATH_MAX+5+256+1], dirname[PATH_MAX];
const char *cctype;
struct dirent *d;
int err, i, j;

which explains the needed space and as well removes the warning...

steved