Are the drive contents, or format, dear to you?
If not, and you're OK with blowing it away (to be
fdisk'ed later), there is a test you could try (but you would do so at your own risk, since you would have to recreate the partition table, and it would execute a write cycle for every cell on the drive...and
there is risk involved).
Having stated that disclaimer, you could try:
dd if=/dev/zero of=/dev/sdX
where X is the letter that represents your flash drive.
(Be aware that if you get this wrong, and enter the letter for your internal drive, you
will completely erase your PC!)

when the command gets to the end of the device, and can't write anymore, it will display how much data was copied. This will definitively tell you the size of the drive. It will also completely erase it, preparing it for a brand new
fdisk session (writing the dos label "o", and everything

).
If you're at all nervous, the
DO NOT do this!!!
If you would like more details, or the results of this explained, post here, and we can take this further...