|
|
@@ -12,6 +12,7 @@ import (
|
|
|
"fmt"
|
|
|
"io"
|
|
|
"os"
|
|
|
+ "path"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
@@ -86,8 +87,11 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
|
|
|
var rdr io.Reader
|
|
|
var data []byte
|
|
|
|
|
|
- if strings.HasPrefix(name, "Reader::") { // io.Reader
|
|
|
- name = name[8:]
|
|
|
+ // The server might return an an absolute path. See issue #355.
|
|
|
+ base := path.Base(name)
|
|
|
+
|
|
|
+ if strings.HasPrefix(base, "Reader::") { // io.Reader
|
|
|
+ name = base[8:]
|
|
|
if handler, inMap := readerRegister[name]; inMap {
|
|
|
rdr = handler()
|
|
|
if rdr != nil {
|