cdromlib/cdnewlib.c | 6 +++--- corelib/ncbierr.c | 2 +- corelib/ncbisgml.c | 8 ++++---- demo/errhdr.c | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cdromlib/cdnewlib.c b/cdromlib/cdnewlib.c index 461292c..be4a2d6 100644 --- a/cdromlib/cdnewlib.c +++ b/cdromlib/cdnewlib.c @@ -2676,7 +2676,7 @@ static int CdDevice_FileBuildPath (CdDevice *cddev, char *fpath, const char *fdi char volname[16]; volname[0] = '\0'; if (cddev->volume != NULL) - strncat(volname,cddev->volume->volume_name,sizeof volname); + strncat(volname,cddev->volume->volume_name,sizeof volname - 1); else sprintf(volname,"entrez%d",cddev->hint); if (!FileBuildPath(fpath,volname,NULL)) @@ -2748,7 +2748,7 @@ static int CdDevice_Init (CdDevice *cddev) memset((void*)&info,0,sizeof info); fpath[0] = '\0'; if (cddev->inf.root !=NULL) - strncat(fpath,cddev->inf.root,sizeof fpath); + strncat(fpath,cddev->inf.root,sizeof fpath - 1); if (cddev->ins_volname) { @@ -2766,7 +2766,7 @@ static int CdDevice_Init (CdDevice *cddev) { fpath[0] = '\0'; if (cddev->inf.root !=NULL) - strncat(fpath,cddev->inf.root,sizeof fpath); + strncat(fpath,cddev->inf.root,sizeof fpath - 1); sprintf(volname,"entrez%d",j+1); FileBuildPath(fpath,volname,NULL); if (CdTestPath(fpath,&info)) diff --git a/corelib/ncbierr.c b/corelib/ncbierr.c index 0429d86..7b96a2e 100644 --- a/corelib/ncbierr.c +++ b/corelib/ncbierr.c @@ -952,7 +952,7 @@ static FILE * ErrMsgRoot_fopen (ErrMsgRoot *ctx) if (FileLength(file)==0 || (fd = FileOpen(file,s_msg_mode)) == NULL) { strcpy(path,info->msgpath); - strncat(path,file,sizeof(path)); + strncat(path,file,sizeof(path) - 1); fd = FileOpen(path,s_msg_mode); } diff --git a/corelib/ncbisgml.c b/corelib/ncbisgml.c index 99412be..a653aef 100644 --- a/corelib/ncbisgml.c +++ b/corelib/ncbisgml.c @@ -260,7 +260,7 @@ NLM_EXTERN char * LIBCALL Nlm_Sgml2Ascii (const char *sgml, char *ascii, size_t } if (i >= num_sgml_entity) { - char bad[SGML_ERROR_MSG_LIM]; + char bad[SGML_ERROR_MSG_LIM + 2]; bad[0] = '\0'; strncat(bad,sgml,SGML_ERROR_MSG_LIM); ErrPostEx(SEV_ERROR,E_SGML,3,"Unrecognized SGML entity &%s in [%s]",tbuf,bad); @@ -279,7 +279,7 @@ NLM_EXTERN char * LIBCALL Nlm_Sgml2Ascii (const char *sgml, char *ascii, size_t from++; if (*from == '\0') { - char bad[SGML_ERROR_MSG_LIM]; + char bad[SGML_ERROR_MSG_LIM + 2]; bad[0] = '\0'; strncat(bad,sgml,SGML_ERROR_MSG_LIM); ErrPostEx(SEV_ERROR,E_SGML,2, "Unbalanced <> in SGML [%s]",bad); @@ -335,7 +335,7 @@ NLM_EXTERN size_t LIBCALL Nlm_Sgml2AsciiLen (const char *sgml) } if (i >= num_sgml_entity) { - char bad[SGML_ERROR_MSG_LIM]; + char bad[SGML_ERROR_MSG_LIM + 2]; bad[0] = '\0'; strncat(bad,sgml,SGML_ERROR_MSG_LIM); ErrPostEx(SEV_ERROR,E_SGML,3,"Unrecognized SGML entity &%s in [%s]",tbuf,bad); @@ -349,7 +349,7 @@ NLM_EXTERN size_t LIBCALL Nlm_Sgml2AsciiLen (const char *sgml) from++; if (*from == '\0') { - char bad[SGML_ERROR_MSG_LIM]; + char bad[SGML_ERROR_MSG_LIM + 2]; bad[0] = '\0'; strncat(bad,sgml,SGML_ERROR_MSG_LIM); ErrPostEx(SEV_ERROR,E_SGML,2,"Unbalanced <> in SGML [%s]",bad); diff --git a/demo/errhdr.c b/demo/errhdr.c index 01cd955..5081489 100644 --- a/demo/errhdr.c +++ b/demo/errhdr.c @@ -41,7 +41,7 @@ int main (int argc, char **argv) else if (mod[0] == '\0') { char *p; - strncat(mod,argv[i],sizeof mod); + strncat(mod,argv[i],sizeof mod - 1); if ((p = strstr(argv[i],".msg")) != NULL) *p = '\0'; }