A source reader which returns EOF before supplying as many bytes as it declared should not cause a backend Put to hang, panic or create an object claiming the declared size. The layers above detect a truncated transfer by comparing sizes after the upload, so a backend may either return an error or create a shorter object. See #9704