data->DFree = FtpTransferCmdFree;
/*
* Min size has been checked in FTPParseRequestCommand
- * PATH_MAX includes the null
+ * SC_FILENAME_MAX includes the null
*/
- uint32_t file_name_len = MIN(PATH_MAX - 1, state->current_line_len - 5);
-#if PATH_MAX > UINT16_MAX
-#error PATH_MAX is greater than UINT16_MAX
+ uint32_t file_name_len = MIN(SC_FILENAME_MAX - 1, state->current_line_len - 5);
+#if SC_FILENAME_MAX > UINT16_MAX
+#error SC_FILENAME_MAX is greater than UINT16_MAX
#endif
data->file_name = FTPCalloc(file_name_len + 1, sizeof(char));
if (data->file_name == NULL) {
}
if (filename != NULL) {
- if (filename_len > PATH_MAX) {
+ if (filename_len > SC_FILENAME_MAX) {
// explicitly truncate the file name if too long
- filename_len = PATH_MAX;
+ filename_len = SC_FILENAME_MAX;
HTPSetEvent(hstate, htud, STREAM_TOSERVER, HTTP_DECODER_EVENT_FILE_NAME_TOO_LONG);
}
result = HTPFileOpen(hstate, htud, filename, (uint16_t)filename_len, data, data_len,
if (filename != NULL) {
// set range if present
htp_header_t *h_content_range = htp_table_get_c(tx->response_headers, "content-range");
- if (filename_len > PATH_MAX) {
+ if (filename_len > SC_FILENAME_MAX) {
// explicitly truncate the file name if too long
- filename_len = PATH_MAX;
+ filename_len = SC_FILENAME_MAX;
HTPSetEvent(hstate, htud, STREAM_TOSERVER, HTTP_DECODER_EVENT_FILE_NAME_TOO_LONG);
}
if (h_content_range != NULL) {
StreamTcpReassemblySetMinInspectDepth(flow->protoctx, STREAM_TOSERVER, depth);
uint16_t flen = (uint16_t)entity->filename_len;
- if (entity->filename_len > PATH_MAX) {
- flen = PATH_MAX;
+ if (entity->filename_len > SC_FILENAME_MAX) {
+ flen = SC_FILENAME_MAX;
SMTPSetEvent(smtp_state, SMTP_DECODER_EVENT_MIME_LONG_FILENAME);
}
if (FileOpenFileWithId(files, &smtp_config.sbcfg, smtp_state->file_track_id++,
#define FILE_USE_DETECT BIT_U16(13) /**< use content_inspected tracker */
#define FILE_HAS_GAPS BIT_U16(15)
+// to be used instead of PATH_MAX which depends on the OS
+#define SC_FILENAME_MAX 4096
+
typedef enum FileState_ {
FILE_STATE_NONE = 0, /**< no state */
FILE_STATE_OPENED, /**< flow file is opened */