diff --git a/src/uifc/filepick.c b/src/uifc/filepick.c
index 5cb47e0fbe43ebfb5df1b690bb6ed6bf0ca92c20..80ed4be548e0845560b1853ea45715354350c1d7 100644
--- a/src/uifc/filepick.c
+++ b/src/uifc/filepick.c
@@ -364,8 +364,8 @@ int filepick(uifcapi_t *api, char *title, struct file_pick *fp, char *dir, char
 		}
 #endif
 		backslash(cpath);
-		sprintf(cglob,"%s%s",cpath,(opts&UIFC_FP_MSKCASE)?cmsk:insensitive_mask(cmsk));
-		sprintf(dglob,"%s*",cpath);
+		snprintf(cglob, sizeof(cglob), "%s%s",cpath,(opts&UIFC_FP_MSKCASE)?cmsk:insensitive_mask(cmsk));
+		snprintf(dglob, sizeof(dglob), "%s*",cpath);
 		switch(currfield) {
 			case DIR_LIST:
 				if(lastfield==DIR_LIST)