Sfoglia il codice sorgente

Fix 756 SSH command line parsing error to write to user instead of stderr (#757)

brad-defined 2 anni fa
parent
commit
9a8892c526
1 ha cambiato i file con 7 aggiunte e 2 eliminazioni
  1. 7 2
      sshd/command.go

+ 7 - 2
sshd/command.go

@@ -40,8 +40,13 @@ func execCommand(c *Command, args []string, w StringWriter) error {
 	if c.Flags != nil {
 	if c.Flags != nil {
 		fl, fs = c.Flags()
 		fl, fs = c.Flags()
 		if fl != nil {
 		if fl != nil {
-			//TODO: handle the error
-			fl.Parse(args)
+			// SetOutput() here in case fl.Parse dumps usage.
+			fl.SetOutput(w.GetWriter())
+			err := fl.Parse(args)
+			if err != nil {
+				// fl.Parse has dumped error information to the user via the w writer.
+				return err
+			}
 			args = fl.Args()
 			args = fl.Args()
 		}
 		}
 	}
 	}