commit 784250423cb120d85142337e0588bacf3fdd8255
parent c098e7187a7e3cfe8ae3641744a5638a00b59b0f
Author: Florian Dold <dold@taler.net>
Date: Thu, 20 Aug 2026 19:06:41 +0200
wallet-core: reject malformed transaction identifiers
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/taler-wallet-core/src/transactions.test.ts b/packages/taler-wallet-core/src/transactions.test.ts
@@ -58,5 +58,10 @@ test("a malformed transaction identifier is rejected", (t) => {
// an exception or a missing value.
assert.strictEqual(parseTransactionIdentifier("txn:deposit"), undefined);
assert.strictEqual(parseTransactionIdentifier("nottxn:deposit:x"), undefined);
+ assert.strictEqual(parseTransactionIdentifier("txn:payment:"), undefined);
+ assert.strictEqual(
+ parseTransactionIdentifier("txn:payment:proposal:trailing"),
+ undefined,
+ );
assert.strictEqual(parseTransactionIdentifier(""), undefined);
});
diff --git a/packages/taler-wallet-core/src/transactions.ts b/packages/taler-wallet-core/src/transactions.ts
@@ -789,7 +789,7 @@ export function parseTransactionIdentifier(
): ParsedTransactionIdentifier | undefined {
const txnParts = transactionId.split(":");
- if (txnParts.length < 3) {
+ if (txnParts.length !== 3) {
return undefined;
}
@@ -798,6 +798,9 @@ export function parseTransactionIdentifier(
if (prefix != "txn") {
return undefined;
}
+ if (!rest[0]) {
+ return undefined;
+ }
switch (type) {
case TransactionType.Deposit: