X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=rsh.c;h=bad5cff2c287d3c7dd288308428b89e0cb12299d;hb=e433b071fed7dbdf91437b489e261b86288542d8;hp=1c636861ddec037854240d6d3f5fa517d605bc2f;hpb=628cd5430fdf71a75c02af88ab7b557d29687db5;p=git.git diff --git a/rsh.c b/rsh.c index 1c636861..bad5cff2 100644 --- a/rsh.c +++ b/rsh.c @@ -53,6 +53,7 @@ static int add_to_string(char **ptrp, int *sizep, const char *str, int quote) char *p = *ptrp; int size = *sizep; int oc; + int err = 0; if ( quote ) { oc = shell_quote(p, size, str); @@ -62,15 +63,14 @@ static int add_to_string(char **ptrp, int *sizep, const char *str, int quote) } if ( oc >= size ) { - p[size-1] = '\0'; - *ptrp += size-1; - *sizep = 1; - return 1; /* Overflow, string unusable */ + err = 1; + oc = size-1; } *ptrp += oc; + **ptrp = '\0'; *sizep -= oc; - return 0; + return err; } int setup_connection(int *fd_in, int *fd_out, const char *remote_prog,