mirror of
https://github.com/chatmail/core.git
synced 2026-05-03 21:36:29 +03:00
fix early exit on empty addresses in decode_openpgp()
This commit is contained in:
10
src/qr.rs
10
src/qr.rs
@@ -69,7 +69,7 @@ fn decode_openpgp(context: &Context, qr: &str) -> Lot {
|
|||||||
(fp, &rest[1..])
|
(fp, &rest[1..])
|
||||||
}) {
|
}) {
|
||||||
Some(pair) => pair,
|
Some(pair) => pair,
|
||||||
None => return format_err!("Invalid OPENPGP4FPR found").into(),
|
None => (payload, ""),
|
||||||
};
|
};
|
||||||
|
|
||||||
// replace & with \n to match expected param format
|
// replace & with \n to match expected param format
|
||||||
@@ -83,11 +83,11 @@ fn decode_openpgp(context: &Context, qr: &str) -> Lot {
|
|||||||
|
|
||||||
let addr = if let Some(addr) = param.get(Param::Forwarded) {
|
let addr = if let Some(addr) = param.get(Param::Forwarded) {
|
||||||
match normalize_address(addr) {
|
match normalize_address(addr) {
|
||||||
Ok(addr) => addr,
|
Ok(addr) => Some(addr),
|
||||||
Err(err) => return err.into(),
|
Err(err) => return err.into(),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return format_err!("Missing address").into();
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
// what is up with that param name?
|
// what is up with that param name?
|
||||||
@@ -157,7 +157,7 @@ fn decode_openpgp(context: &Context, qr: &str) -> Lot {
|
|||||||
lot.state = LotState::QrFprWithoutAddr;
|
lot.state = LotState::QrFprWithoutAddr;
|
||||||
lot.text1 = Some(dc_format_fingerprint(&fingerprint));
|
lot.text1 = Some(dc_format_fingerprint(&fingerprint));
|
||||||
}
|
}
|
||||||
} else {
|
} else if let Some(addr) = addr {
|
||||||
if grpid.is_some() && grpname.is_some() {
|
if grpid.is_some() && grpname.is_some() {
|
||||||
lot.state = LotState::QrAskVerifyGroup;
|
lot.state = LotState::QrAskVerifyGroup;
|
||||||
lot.text1 = grpname;
|
lot.text1 = grpname;
|
||||||
@@ -172,6 +172,8 @@ fn decode_openpgp(context: &Context, qr: &str) -> Lot {
|
|||||||
lot.fingerprint = Some(fingerprint);
|
lot.fingerprint = Some(fingerprint);
|
||||||
lot.invitenumber = invitenumber;
|
lot.invitenumber = invitenumber;
|
||||||
lot.auth = auth;
|
lot.auth = auth;
|
||||||
|
} else {
|
||||||
|
return format_err!("Missing address").into();
|
||||||
}
|
}
|
||||||
|
|
||||||
lot
|
lot
|
||||||
|
|||||||
Reference in New Issue
Block a user