Well, I've never tried feeding it empty strings! I'll have a go, but rather than a bug, I'd say this is more "garbage-in-garbage-out" - try actually giving it some sensible parameters!
BTW, what's all that String("") stuff? For the best code-generation, you should use String() or String::empty. Or you can just write "" if you want the code to look more concise, but String("") is both more verbose and less efficient. And one of those parameters is a File, not a String!
If it's crashing then it must be because of the context in which you're calling that code, and not because of the code itself.
And obviously when you get a crash, you should be looking at the stack, and reporting what the whole trace looks like.. That's basic debugging - just saying "there's a stack overflow" isn't very helpful.
Sorry for bothering you; I found out that it is not allowed to create a 1MB local array in the function that is calling the filechooser function when using the native one.