@@ -76,6 +76,10 @@ void launch_ssh(char* argv[])
7676}
7777#endif
7878
79+ static bool needs_quotes (char const * path )
80+ {
81+ return strchr (path ,' ' )!= NULL ;
82+ }
7983
8084bool launch_agent (void )
8185{
@@ -137,14 +141,25 @@ bool launch_agent(void)
137141probackup = sep + 1 ;
138142}
139143}
140- snprintf (cmd ,sizeof (cmd ),"%s\\%s agent %s" ,
141- instance_config .remote .path ,probackup ,PROGRAM_VERSION );
144+ if (needs_quotes (instance_config .remote .path )|| needs_quotes (pg_probackup ))
145+ snprintf (cmd ,sizeof (cmd ),"\"%s\\%s\" agent %s" ,
146+ instance_config .remote .path ,probackup ,PROGRAM_VERSION );
147+ else
148+ snprintf (cmd ,sizeof (cmd ),"%s\\%s agent %s" ,
149+ instance_config .remote .path ,probackup ,PROGRAM_VERSION );
142150#else
143- snprintf (cmd ,sizeof (cmd ),"%s/%s agent %s" ,
144- instance_config .remote .path ,probackup ,PROGRAM_VERSION );
151+ if (needs_quotes (instance_config .remote .path )|| needs_quotes (pg_probackup ))
152+ snprintf (cmd ,sizeof (cmd ),"\"%s/%s\" agent %s" ,
153+ instance_config .remote .path ,probackup ,PROGRAM_VERSION );
154+ else
155+ snprintf (cmd ,sizeof (cmd ),"%s/%s agent %s" ,
156+ instance_config .remote .path ,probackup ,PROGRAM_VERSION );
145157#endif
146158}else {
147- snprintf (cmd ,sizeof (cmd ),"%s agent %s" ,pg_probackup ,PROGRAM_VERSION );
159+ if (needs_quotes (pg_probackup ))
160+ snprintf (cmd ,sizeof (cmd ),"\"%s\" agent %s" ,pg_probackup ,PROGRAM_VERSION );
161+ else
162+ snprintf (cmd ,sizeof (cmd ),"%s agent %s" ,pg_probackup ,PROGRAM_VERSION );
148163}
149164
150165#ifdef WIN32