diff --git a/src/db/dbConvert.c b/src/db/dbConvert.c index e2bb9df42..60fae1332 100644 --- a/src/db/dbConvert.c +++ b/src/db/dbConvert.c @@ -416,7 +416,7 @@ static long getCharChar( char *pbuffer = (char *)pto; char *psrc=(char *)(paddr->pfield); - if (paddr->pfldDes->field_type == DBF_STRING) { + if (paddr->pfldDes && paddr->pfldDes->field_type == DBF_STRING) { pbuffer[--nRequest] = 0; if (nRequest == 0) return(0); } @@ -440,7 +440,7 @@ static long getCharUchar( unsigned char *pbuffer = (unsigned char *)pto; char *psrc=(char *)(paddr->pfield); - if (paddr->pfldDes->field_type == DBF_STRING) { + if (paddr->pfldDes && paddr->pfldDes->field_type == DBF_STRING) { pbuffer[--nRequest] = 0; if (nRequest == 0) return(0); } @@ -2594,7 +2594,7 @@ static long putStringEnum( status = (*prset->get_enum_strs)(paddr,&enumStrs); if(!status) { nchoices = enumStrs.no_str; - nargs = sscanf(pbuffer," %u %n",&ind,&nchars); + nargs = sscanf(pbuffer,"%u%n",&ind,&nchars); if(nargs==1 && nchars==strlen(pbuffer) && indget_enum_strs)(paddr,&enumStrs); if(!status) { nchoices = enumStrs.no_str; - nargs = sscanf(from," %u %n",&ind,&nchars); + nargs = sscanf(from,"%u%n",&ind,&nchars); if(nargs==1 && nchars==strlen(from) && indget_enum_strs)(paddr,&enumStrs); + if(!status) { + nchoices = enumStrs.no_str; +- nargs = sscanf(pbuffer," %u %n",&ind,&nchars); ++ nargs = sscanf(pbuffer,"%u%n",&ind,&nchars); + if(nargs==1 && nchars==strlen(pbuffer) && indget_enum_strs)(paddr,&enumStrs); + if(!status) { + nchoices = enumStrs.no_str; +- nargs = sscanf(from," %u %n",&ind,&nchars); ++ nargs = sscanf(from,"%u%n",&ind,&nchars); + if(nargs==1 && nchars==strlen(from) && ind