Author: idra
Date: 2007-06-16 22:52:51 +0000 (Sat, 16 Jun 2007)
New Revision: 23527

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23527

Log:

Use existing escaping function pointed by James


Modified:
   branches/SAMBA_3_0/source/client/smbspool.c
   branches/SAMBA_3_0_25/source/client/smbspool.c
   branches/SAMBA_3_0_26/source/client/smbspool.c


Changeset:
Modified: branches/SAMBA_3_0/source/client/smbspool.c
===================================================================
--- branches/SAMBA_3_0/source/client/smbspool.c 2007-06-16 19:58:17 UTC (rev 
23526)
+++ branches/SAMBA_3_0/source/client/smbspool.c 2007-06-16 22:52:51 UTC (rev 
23527)
@@ -603,35 +603,11 @@
 
 static char *uri_unescape_alloc(const char *uritok)
 {
-       char *t, *ret;
-       const char *p;
-       long int val;
-       char eval[3];
+       char *ret;
 
-       ret = (char *)SMB_MALLOC(strlen(uritok)+1);
-
+       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;
 }

Modified: branches/SAMBA_3_0_25/source/client/smbspool.c
===================================================================
--- branches/SAMBA_3_0_25/source/client/smbspool.c      2007-06-16 19:58:17 UTC 
(rev 23526)
+++ branches/SAMBA_3_0_25/source/client/smbspool.c      2007-06-16 22:52:51 UTC 
(rev 23527)
@@ -603,35 +603,11 @@
 
 static char *uri_unescape_alloc(const char *uritok)
 {
-       char *t, *ret;
-       const char *p;
-       long int val;
-       char eval[3];
+       char *ret;
 
-       ret = (char *)SMB_MALLOC(strlen(uritok)+1);
-
+       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;
 }

Modified: branches/SAMBA_3_0_26/source/client/smbspool.c
===================================================================
--- branches/SAMBA_3_0_26/source/client/smbspool.c      2007-06-16 19:58:17 UTC 
(rev 23526)
+++ branches/SAMBA_3_0_26/source/client/smbspool.c      2007-06-16 22:52:51 UTC 
(rev 23527)
@@ -603,35 +603,11 @@
 
 static char *uri_unescape_alloc(const char *uritok)
 {
-       char *t, *ret;
-       const char *p;
-       long int val;
-       char eval[3];
+       char *ret;
 
-       ret = (char *)SMB_MALLOC(strlen(uritok)+1);
-
+       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;
 }

Reply via email to