diff --git a/include/smb2/libsmb2.h b/include/smb2/libsmb2.h index 703a9794..6f5b19b5 100644 --- a/include/smb2/libsmb2.h +++ b/include/smb2/libsmb2.h @@ -642,6 +642,7 @@ void smb2_add_compound_pdu(struct smb2_context *smb2, struct smb2_pdu *pdu, struct smb2_pdu *next_pdu); void smb2_free_pdu(struct smb2_context *smb2, struct smb2_pdu *pdu); void smb2_queue_pdu(struct smb2_context *smb2, struct smb2_pdu *pdu); +void smb2_set_pdu_status(struct smb2_context *smb2, struct smb2_pdu *pdu, int status); int smb2_pdu_is_compound(struct smb2_context *smb2); /* diff --git a/include/smb2/smb2-errors.h b/include/smb2/smb2-errors.h index 0c8c4449..783ecbbc 100644 --- a/include/smb2/smb2-errors.h +++ b/include/smb2/smb2-errors.h @@ -544,4 +544,6 @@ #define SMB2_STATUS_SERVER_UNAVAILABLE 0xC0000466 /* Warning codes */ -#define SMB2_STATUS_STOPPED_ON_SYMLINK 0x8000002d +#define SMB2_STATUS_BUFFER_OVERFLOW 0x80000005 +#define SMB2_STATUS_STOPPED_ON_SYMLINK 0x8000002D + diff --git a/lib/pdu.c b/lib/pdu.c index c8bde482..be3d0dc8 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -654,6 +654,12 @@ smb2_queue_pdu(struct smb2_context *smb2, struct smb2_pdu *pdu) smb2_add_to_outqueue(smb2, pdu); } +void +smb2_set_pdu_status(struct smb2_context *smb2, struct smb2_pdu *pdu, int status) +{ + pdu->header.status = status; +} + struct smb2_pdu * smb2_find_pdu(struct smb2_context *smb2, uint64_t message_id) {