summaryrefslogtreecommitdiff
path: root/src/libicalss/icalcalendar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libicalss/icalcalendar.c')
-rw-r--r--src/libicalss/icalcalendar.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/libicalss/icalcalendar.c b/src/libicalss/icalcalendar.c
index 04380f6..c4a8152 100644
--- a/src/libicalss/icalcalendar.c
+++ b/src/libicalss/icalcalendar.c
@@ -49,6 +49,7 @@
#include <errno.h>
#ifdef WIN32
+#include <direct.h>
#define mkdir(path, mode) _mkdir(path)
#endif
@@ -89,9 +90,10 @@ icalerrorenum icalcalendar_create(struct icalcalendar_impl* impl)
icalerror_check_arg_re((impl != 0),"impl",ICAL_BADARG_ERROR);
path[0] = '\0';
- strcpy(path,impl->dir);
- 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);
@@ -139,7 +141,7 @@ void icalcalendar_free(icalcalendar* impl)
}
if (impl->freebusy !=0){
- icalset_free(impl->booked);
+ icalset_free(impl->freebusy);
}
if (impl->properties !=0){
@@ -196,9 +198,10 @@ icalset* icalcalendar_get_booked(icalcalendar* impl)
icalerror_check_arg_rz((impl != 0),"impl");
dir[0] = '\0';
- strcpy(dir,impl->dir);
- 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 +219,10 @@ icalset* icalcalendar_get_incoming(icalcalendar* impl)
icalerror_check_arg_rz((impl != 0),"impl");
path[0] = '\0';
- strcpy(path,impl->dir);
- 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 +237,10 @@ icalset* icalcalendar_get_properties(icalcalendar* impl)
icalerror_check_arg_rz((impl != 0),"impl");
path[0] = '\0';
- strcpy(path,impl->dir);
- 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,10 +255,10 @@ icalset* icalcalendar_get_freebusy(icalcalendar* impl)
icalerror_check_arg_rz((impl != 0),"impl");
path[0] = '\0';
- strcpy(path,impl->dir);
- 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);