Index: src/libical/sspm.c =================================================================== --- src/libical/sspm.c (revision 958) +++ src/libical/sspm.c (working copy) @@ -181,7 +181,8 @@ if(s != 0){ strncpy(name,p,(size_t)s-(size_t)p); } else { - strncpy(name,p,1024); + strncpy(name,p,sizeof(name)-1); + name[sizeof(name)-1]='\0'; } /* Strip off trailing quote, if it exists */ Index: src/libicalss/icaldirset.c =================================================================== --- src/libicalss/icaldirset.c (revision 958) +++ src/libicalss/icaldirset.c (working copy) @@ -407,7 +407,8 @@ uid = icalproperty_new_uid(uidstring); icalcomponent_add_property(comp,uid); } else { - strncpy(uidstring,icalproperty_get_uid(uid),ICAL_PATH_MAX); + strncpy(uidstring,icalproperty_get_uid(uid),ICAL_PATH_MAX-1); + uidstring[ICAL_PATH_MAX-1]='\0'; } } Index: src/libicalss/icalcalendar.c =================================================================== --- src/libicalss/icalcalendar.c (revision 958) +++ src/libicalss/icalcalendar.c (working copy) @@ -89,9 +89,10 @@ icalerror_check_arg_re((impl != 0),"impl",ICAL_BADARG_ERROR); path[0] = '\0'; - strncpy(path,impl->dir,PATH_MAX); - strcat(path,"/"); - strcat(path,BOOKED_DIR); + strncpy(path,impl->dir,PATH_MAX-1); + strncat(path,"/",PATH_MAX-strlen(path)-1); + strncat(path,BOOKED_DIR,PATH_MAX-strlen(path)-1); + path[PATH_MAX-1] = '\0'; r = stat(path,&sbuf); @@ -196,9 +197,10 @@ icalerror_check_arg_rz((impl != 0),"impl"); dir[0] = '\0'; - strncpy(dir,impl->dir,PATH_MAX); - strcat(dir,"/"); - strcat(dir,BOOKED_DIR); + strncpy(dir,impl->dir,PATH_MAX-1); + strncat(dir,"/",PATH_MAX-strlen(dir)-1); + strncat(dir,BOOKED_DIR,PATH_MAX-strlen(dir)-1); + dir[PATH_MAX-1] = '\0'; if (impl->booked == 0){ icalerror_clear_errno(); @@ -216,9 +218,10 @@ icalerror_check_arg_rz((impl != 0),"impl"); path[0] = '\0'; - strncpy(path,impl->dir,PATH_MAX); - strcat(path,"/"); - strcat(path,INCOMING_FILE); + strncpy(path,impl->dir,PATH_MAX-1); + strncat(path,"/",PATH_MAX-strlen(path)-1); + strncat(path,INCOMING_FILE,PATH_MAX-strlen(path)-1); + path[PATH_MAX-1] = '\0'; if (impl->properties == 0){ impl->properties = icalfileset_new(path); @@ -233,9 +236,10 @@ icalerror_check_arg_rz((impl != 0),"impl"); path[0] = '\0'; - strncpy(path,impl->dir,PATH_MAX); - strcat(path,"/"); - strcat(path,PROP_FILE); + strncpy(path,impl->dir,PATH_MAX-1); + strncat(path,"/",PATH_MAX-strlen(path)-1); + strncat(path,PROP_FILE,PATH_MAX-strlen(path)-1); + path[PATH_MAX-1] = '\0'; if (impl->properties == 0){ impl->properties = icalfileset_new(path); @@ -250,11 +254,11 @@ icalerror_check_arg_rz((impl != 0),"impl"); path[0] = '\0'; - strncpy(path,impl->dir,PATH_MAX); - strcat(path,"/"); - strcat(path,FBLIST_FILE); + strncpy(path,impl->dir,PATH_MAX-1); + strncat(path,"/",PATH_MAX-strlen(path)-1); + strncat(path,FBLIST_FILE,PATH_MAX-strlen(path)-1); + path[PATH_MAX-1] = '\0'; - if (impl->freebusy == 0){ impl->freebusy = icalfileset_new(path); } Index: src/libicalvcal/vobject.c =================================================================== --- src/libicalvcal/vobject.c (revision 958) +++ src/libicalvcal/vobject.c (working copy) @@ -1247,9 +1247,11 @@ { char buf1[256]; char buf2[256]; - strncpy(buf1,NAME_OF(o),256); + strncpy(buf1,NAME_OF(o),sizeof(buf1)-1); + buf1[sizeof(buf1)-1]='\0'; + while ((o=isAPropertyOf(o,VCGroupingProp)) != 0) { - strncpy(buf2,STRINGZ_VALUE_OF(o),sizeof(buf2)); + strncpy(buf2,STRINGZ_VALUE_OF(o),sizeof(buf2)-1); buf2[sizeof(buf2)-1] = '\0'; strncat(buf2,".",sizeof(buf2)-strlen(buf2)-1); strncat(buf2,buf1,sizeof(buf2)-strlen(buf2)-1);