Note that the fee is not a fixed value, its value depends on shareData[_id].tokenCount.
Market.sol#L194-L198
Therefore, if the function is front-run by another buy() and mintNFT() function, then shareData[_id].tokenCount will increase, and as a result, the fee will increase. A user might pay more fee than they expected due to such front-runs. 
Mitigation: Add a slippage control so that the user can control the maximum amount of fee they are willing to pay. 
