Skip to content

Commit

Permalink
Checks for error when unwrapping (Closes #2)
Browse files Browse the repository at this point in the history
  • Loading branch information
chifflier committed Mar 24, 2017
1 parent 143efb1 commit 81d0174
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/snmp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,20 @@ pub fn parse_snmp_v1_trap_pdu<'a>(pdu: &'a [u8]) -> IResult<&'a[u8],SnmpPdu<'a>>
pub fn parse_snmp_v1_content<'a>(obj: DerObject<'a>) -> IResult<&'a[u8],SnmpMessage<'a>> {
if let DerObjectContent::Sequence(ref v) = obj.content {
if v.len() != 3 { return IResult::Error(Err::Code(ErrorKind::Custom(128))); };
let vers = v[0].content.as_u32().unwrap();
let vers = match v[0].content.as_u32() {
Some (u) => u,
None => return IResult::Error(Err::Code(ErrorKind::Custom(129))),
};
let community = v[1].content.as_slice().unwrap();
let pdu_type_int = v[2].tag;
let pdu_type = match PduType::from_u8(pdu_type_int) {
None => { return IResult::Error(Err::Code(ErrorKind::Custom(130))); },
Some(t) => t,
};
let pdu = v[2].content.as_slice().unwrap();
let pdu = match v[2].content.as_slice() {
Some(p) => p,
None => return IResult::Error(Err::Code(ErrorKind::Custom(131))),
};
let pdu_res = match pdu_type {
PduType::GetRequest |
PduType::GetNextRequest |
Expand Down

0 comments on commit 81d0174

Please sign in to comment.