X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fwrite_bytes.h;h=4fc72cc2648185847bba99d420f6d654c95bcd9a;hp=f166148fd3ff631ffb03b325e0b46459752f9990;hb=HEAD;hpb=1408e610ac2db753543a546c4312b2eb6799f044 diff --git a/utils/gssd/write_bytes.h b/utils/gssd/write_bytes.h index f166148..4fc72cc 100644 --- a/utils/gssd/write_bytes.h +++ b/utils/gssd/write_bytes.h @@ -56,13 +56,26 @@ write_buffer(char **p, char *end, gss_buffer_desc *arg) int len = (int)arg->length; /* make an int out of size_t */ if (WRITE_BYTES(p, end, len)) return -1; - if (*p + arg->length > end) + if (*p + len > end) return -1; memcpy(*p, arg->value, len); *p += len; return 0; } +inline static int +write_oid(char **p, char *end, gss_OID_desc *arg) +{ + int len = (int)arg->length; /* make an int out of size_t */ + if (WRITE_BYTES(p, end, len)) + return -1; + if (*p + arg->length > end) + return -1; + memcpy(*p, arg->elements, len); + *p += len; + return 0; +} + static inline int get_bytes(char **ptr, const char *end, void *res, int len) {