r23527: Use existing escaping function pointed by James
authorSimo Sorce <idra@samba.org>
Sat, 16 Jun 2007 22:52:51 +0000 (22:52 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:23:25 +0000 (12:23 -0500)
(This used to be commit 9dcbef9615aec7cfe8f72e6f21f01af4e4fcc90e)

source3/client/smbspool.c

index 89863cc0ff2794dd6dad8be826338e2fc26f6026..a4681e9f6153b7ec589eed9490505f56efde09ab 100644 (file)
@@ -603,35 +603,11 @@ smb_print(struct cli_state *cli,  /* I - SMB connection */
 
 static char *uri_unescape_alloc(const char *uritok)
 {
-       char *t, *ret;
-       const char *p;
-       long int val;
-       char eval[3];
-
-       ret = (char *)SMB_MALLOC(strlen(uritok)+1);
+       char *ret;
 
+       ret = (char *)SMB_STRDUP(uritok);
        if (!ret) return NULL;
 
-       eval[2] = '\0';
-
-       for (p = uritok, t = ret; *p; p++, t++) {
-               if (*p == '%') { /* unescape hex */
-                       p++;
-                       eval[0] = *p;
-                       p++;
-                       eval[1] = *p;
-                       val = strtol(eval, NULL, 16);
-                       if ((val == LONG_MIN || val == LONG_MAX) && errno == ERANGE) {
-                               SAFE_FREE(ret);
-                               return NULL;
-                       }
-                       *t = (char)val;
-               } else {
-                       *t = *p;
-               }
-       }
-
-       *t = '\0'; /*terminate*/
-
+       rfc1738_unescape(ret);
        return ret;
 }