Make rsh.c use sq_quote_buf()
PATCH 2/3 Make rsh.c use sq_quote_buf()
Make rsh.c use sq_quote_buf()
---
commit 16e46159b554116a7d95a206913fcdf7e79e07d0
tree c075951382add702148d7a2c2b4e0298efab8082
parent cc114823f72bd8d912abf7f7a7515853c554a9f3
author Peter Anvin <[email protected]> Mon, 10 Oct 2005 12:23:44 -0700 committer Peter Anvin <[email protected]> Mon, 10 Oct 2005 12:23:44 -0700
rsh.c | 46 +++++----------------------------------------- 1 files changed, 5 insertions(+), 41 deletions(-)
rsh.c +5 -41
@@ -1,52 +1,16 @@ -#include "rsh.h" -#include <string.h> #include <sys/types.h> #include <sys/socket.h> +#include "rsh.h" +#include "quote.h" #include "cache.h" #define COMMAND_SIZE 4096/* -* Write a shell-quoted version of a string into a buffer, and -* return bytes that ought to be output excluding final null. -*/ -static int shell_quote (char *buf,int nmax,const char *str) -{ -char ch; -int nq; -int oc =0 ; - -while ( (ch = *str++) ) { - nq =0 ; -if (strchr (" !\"#$%&\'()*;<=>?[\\]^`{|}" , ch) ) - nq =1 ; - -if ( nq ) { -if ( nmax >1 ) { - *buf++ ='\\' ; - nmax--; - } - oc++; - } - -if ( nmax >1 ) { - *buf++ = ch; - nmax--; - } - oc++; - } - -if ( nmax ) - *buf ='\0' ; - -return oc; -} - -/* -* Append a string to a string buffer, with or without quoting. Return true -* if the buffer overflowed. +* Append a string to a string buffer, with or without shell quoting. +* Return true if the buffer overflowed. */ static int add_to_string (char **ptrp,int *sizep,const char *str,int quote) {
@@ -56,7 +20,7 @@ static int add_to_string(char **ptrp, inint err =0 ;if ( quote ) { - oc =shell_quote (p, size, str); + oc =sq_quote_buf (p, size, str); }else { oc =strlen (str);memcpy (p, str, (oc >= size) ? size-1 : oc);