ftp: fix int warnings

Explicitly truncate a file name if it is longer
than UINT16_MAX
pull/6779/head
Philippe Antoine 4 years ago committed by Victor Julien
parent 22e89ec4a3
commit defce022b4

@ -640,14 +640,17 @@ static AppLayerResult FTPParseRequest(Flow *f, void *ftp_state, AppLayerParserSt
* Min size has been checked in FTPParseRequestCommand
* PATH_MAX includes the null
*/
int file_name_len = MIN(PATH_MAX - 1, state->current_line_len - 5);
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
#endif
data->file_name = FTPCalloc(file_name_len + 1, sizeof(char));
if (data->file_name == NULL) {
FtpTransferCmdFree(data);
SCReturnStruct(APP_LAYER_ERROR);
}
data->file_name[file_name_len] = 0;
data->file_len = file_name_len;
data->file_len = (uint16_t)file_name_len;
memcpy(data->file_name, state->current_line + 5, file_name_len);
data->cmd = state->command;
data->flow_id = FlowGetId(f);
@ -1027,7 +1030,7 @@ static StreamingBufferConfig sbcfg = STREAMING_BUFFER_CONFIG_INITIALIZER;
* \retval 1 when the command is parsed, 0 otherwise
*/
static AppLayerResult FTPDataParse(Flow *f, FtpDataState *ftpdata_state,
AppLayerParserState *pstate, StreamSlice stream_slice, void *local_data, int direction)
AppLayerParserState *pstate, StreamSlice stream_slice, void *local_data, uint8_t direction)
{
const uint8_t *input = StreamSliceGetData(&stream_slice);
uint32_t input_len = StreamSliceGetDataLen(&stream_slice);
@ -1354,7 +1357,7 @@ uint16_t JsonGetNextLineFromBuffer(const char *buffer, const uint16_t len)
}
char *c = strchr(buffer, '\n');
return c == NULL ? len : c - buffer + 1;
return c == NULL ? len : (uint16_t)(c - buffer + 1);
}
void EveFTPDataAddMetadata(const Flow *f, JsonBuilder *jb)

@ -127,7 +127,7 @@ typedef struct FtpLineState_ {
typedef struct FTPString_ {
uint8_t *str;
uint16_t len;
uint32_t len;
TAILQ_ENTRY(FTPString_) next;
} FTPString;

@ -46,7 +46,7 @@
#endif
MpmTableElmt mpm_table[MPM_TABLE_SIZE];
int mpm_default_matcher;
uint16_t mpm_default_matcher;
/**
* \brief Register a new Mpm Context.

@ -170,7 +170,7 @@ typedef struct MpmTableElmt_ {
} MpmTableElmt;
extern MpmTableElmt mpm_table[MPM_TABLE_SIZE];
extern int mpm_default_matcher;
extern uint16_t mpm_default_matcher;
struct DetectEngineCtx_;

Loading…
Cancel
Save