{"record":{"id":"2f8d78c2121b2d41","repo":"shadow1ng/fscan","slug":"s-unsupported-platform-s","errorCode":null,"errorMessage":"%s [unsupported_platform: %s]","messagePattern":"(.+?) \\[unsupported_platform: (.+?)\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"plugins/local/ldpreload.go","lineNumber":45,"sourceCode":"\n// NewLDPreloadPlugin 创建LD_PRELOAD持久化插件\nfunc NewLDPreloadPlugin() *LDPreloadPlugin {\n\treturn &LDPreloadPlugin{\n\t\tBasePlugin: plugins.NewBasePlugin(\"ldpreload\"),\n\t}\n}\n\n// Scan 执行LD_PRELOAD持久化 - 直接实现\nfunc (p *LDPreloadPlugin) Scan(ctx context.Context, info *common.HostInfo, session *common.ScanSession) *plugins.Result {\n\tconfig := session.Config\n\tvar output strings.Builder\n\n\tif runtime.GOOS != \"linux\" {\n\t\toutput.WriteString(i18n.GetText(\"ldpreload_linux_only\") + \"\\n\")\n\t\treturn &plugins.Result{\n\t\t\tSuccess: false,\n\t\t\tOutput:  output.String(),\n\t\t\tError:   fmt.Errorf(\"%s\", i18n.Tr(\"unsupported_platform\", runtime.GOOS)),\n\t\t}\n\t}\n\n\t// 从config获取配置\n\ttargetFile := config.PersistenceTargetFile\n\tif targetFile == \"\" {\n\t\toutput.WriteString(i18n.GetText(\"persistence_file_required\") + \"\\n\")\n\t\treturn &plugins.Result{\n\t\t\tSuccess: false,\n\t\t\tOutput:  output.String(),\n\t\t\tError:   fmt.Errorf(\"%s\", i18n.GetText(\"target_file_not_specified\")),\n\t\t}\n\t}\n\n\t// 检查目标文件是否存在\n\tif _, err := os.Stat(targetFile); os.IsNotExist(err) {\n\t\toutput.WriteString(i18n.Tr(\"target_file_not_exist\", targetFile) + \"\\n\")\n\t\treturn &plugins.Result{","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/shadow1ng/fscan/blob/95cc12e753bf43de7004e5aef42a9ffba3934303/plugins/local/ldpreload.go#L27-L63","documentation":"Returned by LDPreloadPlugin.Scan when runtime.GOOS is not linux: LD_PRELOAD persistence only applies to Linux, and the bracketed marker records the unsupported platform. The plugin aborts without side effects.","triggerScenarios":"Thrown at plugins/local/ldpreload.go:45 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run the ldpreload plugin on a Linux target","Use a platform-appropriate persistence plugin instead","Skip persistence when the target OS is incompatible"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"95cc12e753bf43de7004e5aef42a9ffba3934303","analyzedAt":"2026-09-06T17:07:30.094Z","contentChangedAt":"2026-09-06T17:07:30.094Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}