mem3v1-sjis-offbyone.patch

text/plain

Filename: mem3v1-sjis-offbyone.patch
Type: text/plain
Part: 2
Message: memory-related bugs

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c 0 0
diff --git a/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c b/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
index 3499f77..868bdbc 100644
*** a/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
--- b/src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
***************
*** 218,225 **** get_ten(int b, int *ku)
  static void
  shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len)
  {
! 	int			c1,
! 				c2;
  	int			ku,
  				ten,
  				kubun;
--- 218,224 ----
  static void
  shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len)
  {
! 	int			c1;
  	int			ku,
  				ten,
  				kubun;
***************
*** 229,235 **** shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len
  	while (len > 0)
  	{
  		c1 = *sjis;
- 		c2 = sjis[1];
  
  		if (!IS_HIGHBIT_SET(c1))
  		{
--- 228,233 ----
***************
*** 245,251 **** shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len
  
  		l = pg_encoding_verifymb(PG_SHIFT_JIS_2004, (const char *) sjis, len);
  
! 		if (l < 0)
  			report_invalid_encoding(PG_SHIFT_JIS_2004,
  									(const char *) sjis, len);
  
--- 243,249 ----
  
  		l = pg_encoding_verifymb(PG_SHIFT_JIS_2004, (const char *) sjis, len);
  
! 		if (l < 0 || l > len)
  			report_invalid_encoding(PG_SHIFT_JIS_2004,
  									(const char *) sjis, len);
  
***************
*** 257,262 **** shift_jis_20042euc_jis_2004(const unsigned char *sjis, unsigned char *p, int len
--- 255,262 ----
  		}
  		else if (l == 2)
  		{
+ 			int			c2 = sjis[1];
+ 
  			plane = 1;
  			ku = 1;
  			ten = 1;