Listing a token for sale does not check if this token is listed already.
The issue happens when a buyer runs buyMartenitsa() at an initial price of X and the seller front-runs him by re running listMartenitsaForSale() at a higher price than initial price X.
The impact would be for the buyer to pay a much higher price than the price he thought he would pay.
Visual inspection
add a check that token is not already for sale like this :
require(!tokenIdToListing[tokenId].forSale);
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.