From 0f0699b343790dca24e59d553d7fed88048c3178 Mon Sep 17 00:00:00 2001 From: Robertkill Date: Tue, 22 Jul 2025 14:23:16 +0800 Subject: [PATCH] fix(dde-open): Fix dde open crash issue Fix the null pointer dereference crash caused by special character file names Log: as title pms: BUG-325569 --- dde-open/main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dde-open/main.go b/dde-open/main.go index b54f99f..d22b761 100644 --- a/dde-open/main.go +++ b/dde-open/main.go @@ -54,16 +54,24 @@ func main() { u, err := url.Parse(arg) if err != nil { gFile := gio.FileNewForCommandlineArg(arg) - scheme = gFile.GetUriScheme() + if gFile != nil { + scheme = gFile.GetUriScheme() + } if scheme == "" { logger.Warningf("failed to parse url %q: %v", arg, err) } } else { scheme = u.Scheme } + logger.Debugf("scheme: %q", scheme) switch scheme { case "file": - err = openFile(u.Path) + if u != nil { + err = openFile(u.Path) + } else { + // 如果u为nil,说明url.Parse失败了,应该作为普通文件路径处理 + err = openFile(arg) + } case "": err = openFile(arg)