diff options
-rw-r--r-- | utils/gssd/cacheio.c | 11 | ||||
-rw-r--r-- | utils/gssd/cacheio.h | 1 | ||||
-rw-r--r-- | utils/gssd/svcgssd_proc.c | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/utils/gssd/cacheio.c b/utils/gssd/cacheio.c index f2f2960..e24ef56 100644 --- a/utils/gssd/cacheio.c +++ b/utils/gssd/cacheio.c @@ -132,6 +132,17 @@ void qword_addint(char **bpp, int *lp, int n) *lp -= len; } +void qword_adduint(char **bpp, int *lp, unsigned int n) +{ + int len; + + len = snprintf(*bpp, *lp, "%u ", n); + if (len > *lp) + len = *lp; + *bpp += len; + *lp -= len; +} + void qword_addeol(char **bpp, int *lp) { if (*lp <= 0) diff --git a/utils/gssd/cacheio.h b/utils/gssd/cacheio.h index dfff258..6585fc7 100644 --- a/utils/gssd/cacheio.h +++ b/utils/gssd/cacheio.h @@ -36,6 +36,7 @@ void qword_add(char **bpp, int *lp, char *str); void qword_addhex(char **bpp, int *lp, char *buf, int blen); void qword_addint(char **bpp, int *lp, int n); +void qword_adduint(char **bpp, int *lp, unsigned int n); void qword_addeol(char **bpp, int *lp); void qword_print(FILE *f, char *str); void qword_printhex(FILE *f, char *str, int slen); diff --git a/utils/gssd/svcgssd_proc.c b/utils/gssd/svcgssd_proc.c index 4037159..7c58f7b 100644 --- a/utils/gssd/svcgssd_proc.c +++ b/utils/gssd/svcgssd_proc.c @@ -125,8 +125,8 @@ send_response(FILE *f, gss_buffer_desc *in_handle, gss_buffer_desc *in_token, qword_addhex(&bp, &blen, in_handle->value, in_handle->length); qword_addhex(&bp, &blen, in_token->value, in_token->length); qword_addint(&bp, &blen, 0x7fffffff); /*XXX need a better timeout */ - qword_addint(&bp, &blen, maj_stat); - qword_addint(&bp, &blen, min_stat); + qword_adduint(&bp, &blen, maj_stat); + qword_adduint(&bp, &blen, min_stat); qword_addhex(&bp, &blen, out_handle->value, out_handle->length); qword_addhex(&bp, &blen, out_token->value, out_token->length); qword_addeol(&bp, &blen); |