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; }