Attached is a trivial improvement to ecpg's pgtypeslib: (1) `pstr' must be non-NULL in this function, so no need to check for it (2) we should check the return value of pgtypes_strdup(). Patch from Eric Astor at EDB, with slight cleanup by myself, to fix a Coverity report.

Barring any objections I'll apply this to HEAD later today.

-Neil
Index: src/interfaces/ecpg/pgtypeslib/dt_common.c
===================================================================
RCS file: /var/lib/cvs/pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c,v
retrieving revision 1.23
diff -c -r1.23 dt_common.c
*** src/interfaces/ecpg/pgtypeslib/dt_common.c	24 May 2005 02:09:45 -0000	1.23
--- src/interfaces/ecpg/pgtypeslib/dt_common.c	30 Jun 2005 05:57:10 -0000
***************
*** 2669,2676 ****
  	if (!pstr_end)
  	{
  		/* there was an error, no match */
! 		err = 1;
! 		return err;
  	}
  	last_char = *pstr_end;
  	*pstr_end = '\0';
--- 2669,2675 ----
  	if (!pstr_end)
  	{
  		/* there was an error, no match */
! 		return 1;
  	}
  	last_char = *pstr_end;
  	*pstr_end = '\0';
***************
*** 2699,2706 ****
  				err = 1;
  			break;
  		case PGTYPES_TYPE_STRING_MALLOCED:
! 			if (pstr)
! 				scan_val->str_val = pgtypes_strdup(*pstr);
  	}
  	if (strtol_end && *strtol_end)
  		*pstr = strtol_end;
--- 2698,2707 ----
  				err = 1;
  			break;
  		case PGTYPES_TYPE_STRING_MALLOCED:
! 			scan_val->str_val = pgtypes_strdup(*pstr);
! 			if (scan_val->str_val == NULL)
! 				err = 1;
! 			break;
  	}
  	if (strtol_end && *strtol_end)
  		*pstr = strtol_end;
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to