|  | @@ -288,22 +288,35 @@ CJSON_PUBLIC(cJSON *) cJSONUtils_GetPointer(cJSON * const object, const char *po
 | 
	
		
			
				|  |  |  /* JSON Patch implementation. */
 | 
	
		
			
				|  |  |  static void cJSONUtils_InplaceDecodePointerString(unsigned char *string)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -    unsigned char *s2 = string;
 | 
	
		
			
				|  |  | +    unsigned char *decoded_string = string;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (string == NULL) {
 | 
	
		
			
				|  |  |          return;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    for (; *string; (void)s2++, string++)
 | 
	
		
			
				|  |  | +    for (; *string; (void)decoded_string++, string++)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        *s2 = (unsigned char) ((*string != '~')
 | 
	
		
			
				|  |  | -            ? (*string)
 | 
	
		
			
				|  |  | -            : ((*(++string) == '0')
 | 
	
		
			
				|  |  | -                    ? '~'
 | 
	
		
			
				|  |  | -                    : '/'));
 | 
	
		
			
				|  |  | +        if (string[0] == '~')
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            if (string[1] == '0')
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                decoded_string[0] = '~';
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else if (string[1] == '1')
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                decoded_string[1] = '/';
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                /* invalid escape sequence */
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            string++;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    *s2 = '\0';
 | 
	
		
			
				|  |  | +    decoded_string[0] = '\0';
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* non-broken cJSON_DetachItemFromArray */
 |