Reformat sftp_common.c according to current coding style.

Signed-off-by: Eshan Kelkar <eshankelkar@galorithm.com>
Reviewed-by: Sahana Prasad <sahana@redhat.com>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
Eshan Kelkar
2023-07-02 17:30:50 +05:30
committed by Sahana Prasad
parent c3e03ab465
commit 7455b6ae64

View File

@@ -75,7 +75,7 @@ sftp_packet sftp_packet_read(sftp_session sftp)
do { do {
int s; int s;
// read from channel until 4 bytes have been read or an error occurs /* read from channel until 4 bytes have been read or an error occurs */
s = ssh_channel_read(sftp->channel, tmpbuf + nread, 4 - nread, 0); s = ssh_channel_read(sftp->channel, tmpbuf + nread, 4 - nread, 0);
if (s < 0) { if (s < 0) {
goto error; goto error;
@@ -246,6 +246,7 @@ int buffer_add_attributes(ssh_buffer buffer, sftp_attributes attr)
} }
} }
} }
return 0; return 0;
} }
@@ -254,9 +255,11 @@ int buffer_add_attributes(ssh_buffer buffer, sftp_attributes attr)
* baselines from the protocol version 4. * baselines from the protocol version 4.
* This code is more or less dead but maybe we will need it in the future. * This code is more or less dead but maybe we will need it in the future.
*/ */
static sftp_attributes sftp_parse_attr_4(sftp_session sftp, ssh_buffer buf, static sftp_attributes sftp_parse_attr_4(sftp_session sftp,
int expectnames) { ssh_buffer buf,
sftp_attributes attr; int expectnames)
{
sftp_attributes attr = NULL;
ssh_string owner = NULL; ssh_string owner = NULL;
ssh_string group = NULL; ssh_string group = NULL;
uint32_t flags = 0; uint32_t flags = 0;
@@ -393,9 +396,9 @@ static sftp_attributes sftp_parse_attr_4(sftp_session sftp, ssh_buffer buf,
} }
attr->extended_count = ntohl(attr->extended_count); attr->extended_count = ntohl(attr->extended_count);
while(attr->extended_count && while (attr->extended_count &&
(attr->extended_type = ssh_buffer_get_ssh_string(buf)) && (attr->extended_type = ssh_buffer_get_ssh_string(buf)) &&
(attr->extended_data = ssh_buffer_get_ssh_string(buf))){ (attr->extended_data = ssh_buffer_get_ssh_string(buf))) {
attr->extended_count--; attr->extended_count--;
} }
@@ -434,18 +437,22 @@ enum sftp_longname_field_e {
SFTP_LONGNAME_NAME, SFTP_LONGNAME_NAME,
}; };
static char *sftp_parse_longname(const char *longname, static char * sftp_parse_longname(const char *longname,
enum sftp_longname_field_e longname_field) { enum sftp_longname_field_e longname_field)
{
const char *p, *q; const char *p, *q;
size_t len, field = 0; size_t len, field = 0;
p = longname; p = longname;
/* Find the beginning of the field which is specified by sftp_longname_field_e. */ /*
while(field != longname_field) { * Find the beginning of the field which is specified
if(isspace(*p)) { * by sftp_longname_field_e.
*/
while (field != longname_field) {
if (isspace(*p)) {
field++; field++;
p++; p++;
while(*p && isspace(*p)) { while (*p && isspace(*p)) {
p++; p++;
} }
} else { } else {
@@ -478,8 +485,10 @@ static char *sftp_parse_longname(const char *longname,
string extended_data string extended_data
... more extended data (extended_type - extended_data pairs), ... more extended data (extended_type - extended_data pairs),
so that number of pairs equals extended_count */ so that number of pairs equals extended_count */
static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf, static sftp_attributes sftp_parse_attr_3(sftp_session sftp,
int expectname) { ssh_buffer buf,
int expectname)
{
sftp_attributes attr; sftp_attributes attr;
int rc; int rc;
@@ -501,12 +510,14 @@ static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf,
/* Set owner and group if we talk to openssh and have the longname */ /* Set owner and group if we talk to openssh and have the longname */
if (ssh_get_openssh_version(sftp->session)) { if (ssh_get_openssh_version(sftp->session)) {
attr->owner = sftp_parse_longname(attr->longname, SFTP_LONGNAME_OWNER); attr->owner = sftp_parse_longname(attr->longname,
SFTP_LONGNAME_OWNER);
if (attr->owner == NULL) { if (attr->owner == NULL) {
goto error; goto error;
} }
attr->group = sftp_parse_longname(attr->longname, SFTP_LONGNAME_GROUP); attr->group = sftp_parse_longname(attr->longname,
SFTP_LONGNAME_GROUP);
if (attr->group == NULL) { if (attr->group == NULL) {
goto error; goto error;
} }
@@ -534,14 +545,14 @@ static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf,
rc = ssh_buffer_unpack(buf, "dd", rc = ssh_buffer_unpack(buf, "dd",
&attr->uid, &attr->uid,
&attr->gid); &attr->gid);
if (rc != SSH_OK){ if (rc != SSH_OK) {
goto error; goto error;
} }
} }
if (attr->flags & SSH_FILEXFER_ATTR_PERMISSIONS) { if (attr->flags & SSH_FILEXFER_ATTR_PERMISSIONS) {
rc = ssh_buffer_unpack(buf, "d", &attr->permissions); rc = ssh_buffer_unpack(buf, "d", &attr->permissions);
if (rc != SSH_OK){ if (rc != SSH_OK) {
goto error; goto error;
} }
@@ -571,29 +582,29 @@ static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf,
rc = ssh_buffer_unpack(buf, "dd", rc = ssh_buffer_unpack(buf, "dd",
&attr->atime, &attr->atime,
&attr->mtime); &attr->mtime);
if (rc != SSH_OK){ if (rc != SSH_OK) {
goto error; goto error;
} }
} }
if (attr->flags & SSH_FILEXFER_ATTR_EXTENDED) { if (attr->flags & SSH_FILEXFER_ATTR_EXTENDED) {
rc = ssh_buffer_unpack(buf, "d", &attr->extended_count); rc = ssh_buffer_unpack(buf, "d", &attr->extended_count);
if (rc != SSH_OK){ if (rc != SSH_OK) {
goto error; goto error;
} }
if (attr->extended_count > 0){ if (attr->extended_count > 0) {
rc = ssh_buffer_unpack(buf, "ss", rc = ssh_buffer_unpack(buf, "ss",
&attr->extended_type, &attr->extended_type,
&attr->extended_data); &attr->extended_data);
if (rc != SSH_OK){ if (rc != SSH_OK) {
goto error; goto error;
} }
attr->extended_count--; attr->extended_count--;
} }
/* just ignore the remaining extensions */ /* just ignore the remaining extensions */
while (attr->extended_count > 0){ while (attr->extended_count > 0) {
ssh_string tmp1,tmp2; ssh_string tmp1,tmp2;
rc = ssh_buffer_unpack(buf, "SS", &tmp1, &tmp2); rc = ssh_buffer_unpack(buf, "SS", &tmp1, &tmp2);
if (rc != SSH_OK){ if (rc != SSH_OK){
@@ -607,7 +618,7 @@ static sftp_attributes sftp_parse_attr_3(sftp_session sftp, ssh_buffer buf,
return attr; return attr;
error: error:
SSH_STRING_FREE(attr->extended_type); SSH_STRING_FREE(attr->extended_type);
SSH_STRING_FREE(attr->extended_data); SSH_STRING_FREE(attr->extended_data);
SAFE_FREE(attr->name); SAFE_FREE(attr->name);
@@ -625,7 +636,7 @@ sftp_attributes sftp_parse_attr(sftp_session session,
ssh_buffer buf, ssh_buffer buf,
int expectname) int expectname)
{ {
switch(session->version) { switch (session->version) {
case 4: case 4:
return sftp_parse_attr_4(session, buf, expectname); return sftp_parse_attr_4(session, buf, expectname);
case 3: case 3:
@@ -635,14 +646,16 @@ sftp_attributes sftp_parse_attr(sftp_session session,
return sftp_parse_attr_3(session, buf, expectname); return sftp_parse_attr_3(session, buf, expectname);
default: default:
ssh_set_error(session->session, SSH_FATAL, ssh_set_error(session->session, SSH_FATAL,
"Version %d unsupported by client", session->server_version); "Version %d unsupported by client",
session->server_version);
return NULL; return NULL;
} }
return NULL; return NULL;
} }
void sftp_set_error(sftp_session sftp, int errnum) { void sftp_set_error(sftp_session sftp, int errnum)
{
if (sftp != NULL) { if (sftp != NULL) {
sftp->errnum = errnum; sftp->errnum = errnum;
} }
@@ -658,7 +671,8 @@ void sftp_message_free(sftp_message msg)
SAFE_FREE(msg); SAFE_FREE(msg);
} }
static sftp_request_queue request_queue_new(sftp_message msg) { static sftp_request_queue request_queue_new(sftp_message msg)
{
sftp_request_queue queue = NULL; sftp_request_queue queue = NULL;
queue = calloc(1, sizeof(struct sftp_request_queue_struct)); queue = calloc(1, sizeof(struct sftp_request_queue_struct));
@@ -673,7 +687,8 @@ static sftp_request_queue request_queue_new(sftp_message msg) {
return queue; return queue;
} }
static void request_queue_free(sftp_request_queue queue) { static void request_queue_free(sftp_request_queue queue)
{
if (queue == NULL) { if (queue == NULL) {
return; return;
} }
@@ -682,7 +697,8 @@ static void request_queue_free(sftp_request_queue queue) {
SAFE_FREE(queue); SAFE_FREE(queue);
} }
static int sftp_enqueue(sftp_session sftp, sftp_message msg) { static int sftp_enqueue(sftp_session sftp, sftp_message msg)
{
sftp_request_queue queue = NULL; sftp_request_queue queue = NULL;
sftp_request_queue ptr; sftp_request_queue ptr;
@@ -712,7 +728,8 @@ static int sftp_enqueue(sftp_session sftp, sftp_message msg) {
* Pulls a message from the queue based on the ID. * Pulls a message from the queue based on the ID.
* Returns NULL if no message has been found. * Returns NULL if no message has been found.
*/ */
sftp_message sftp_dequeue(sftp_session sftp, uint32_t id){ sftp_message sftp_dequeue(sftp_session sftp, uint32_t id)
{
sftp_request_queue prev = NULL; sftp_request_queue prev = NULL;
sftp_request_queue queue; sftp_request_queue queue;
sftp_message msg; sftp_message msg;
@@ -723,7 +740,7 @@ sftp_message sftp_dequeue(sftp_session sftp, uint32_t id){
queue = sftp->queue; queue = sftp->queue;
while (queue) { while (queue) {
if(queue->message->id == id) { if (queue->message->id == id) {
/* remove from queue */ /* remove from queue */
if (prev == NULL) { if (prev == NULL) {
sftp->queue = queue->next; sftp->queue = queue->next;
@@ -751,7 +768,7 @@ static sftp_message sftp_get_message(sftp_packet packet)
sftp_message msg = NULL; sftp_message msg = NULL;
int rc; int rc;
switch(packet->type) { switch (packet->type) {
case SSH_FXP_STATUS: case SSH_FXP_STATUS:
case SSH_FXP_HANDLE: case SSH_FXP_HANDLE:
case SSH_FXP_DATA: case SSH_FXP_DATA:
@@ -823,8 +840,9 @@ int sftp_read_and_dispatch(sftp_session sftp)
return 0; return 0;
} }
sftp_status_message parse_status_msg(sftp_message msg){ sftp_status_message parse_status_msg(sftp_message msg)
sftp_status_message status; {
sftp_status_message status = NULL;
int rc; int rc;
if (msg->packet_type != SSH_FXP_STATUS) { if (msg->packet_type != SSH_FXP_STATUS) {
@@ -844,18 +862,19 @@ sftp_status_message parse_status_msg(sftp_message msg){
status->id = msg->id; status->id = msg->id;
rc = ssh_buffer_unpack(msg->payload, "d", rc = ssh_buffer_unpack(msg->payload, "d",
&status->status); &status->status);
if (rc != SSH_OK){ if (rc != SSH_OK) {
SAFE_FREE(status); SAFE_FREE(status);
ssh_set_error(msg->sftp->session, SSH_FATAL, ssh_set_error(msg->sftp->session, SSH_FATAL,
"Invalid SSH_FXP_STATUS message"); "Invalid SSH_FXP_STATUS message");
sftp_set_error(msg->sftp, SSH_FX_FAILURE); sftp_set_error(msg->sftp, SSH_FX_FAILURE);
return NULL; return NULL;
} }
rc = ssh_buffer_unpack(msg->payload, "ss", rc = ssh_buffer_unpack(msg->payload, "ss",
&status->errormsg, &status->errormsg,
&status->langmsg); &status->langmsg);
if(rc != SSH_OK && msg->sftp->version >=3){ if (rc != SSH_OK && msg->sftp->version >= 3) {
/* These are mandatory from version 3 */ /* These are mandatory from version 3 */
SAFE_FREE(status); SAFE_FREE(status);
ssh_set_error(msg->sftp->session, SSH_FATAL, ssh_set_error(msg->sftp->session, SSH_FATAL,
@@ -863,10 +882,13 @@ sftp_status_message parse_status_msg(sftp_message msg){
sftp_set_error(msg->sftp, SSH_FX_FAILURE); sftp_set_error(msg->sftp, SSH_FX_FAILURE);
return NULL; return NULL;
} }
if (status->errormsg == NULL) if (status->errormsg == NULL)
status->errormsg = strdup("No error message in packet"); status->errormsg = strdup("No error message in packet");
if (status->langmsg == NULL) if (status->langmsg == NULL)
status->langmsg = strdup(""); status->langmsg = strdup("");
if (status->errormsg == NULL || status->langmsg == NULL) { if (status->errormsg == NULL || status->langmsg == NULL) {
ssh_set_error_oom(msg->sftp->session); ssh_set_error_oom(msg->sftp->session);
sftp_set_error(msg->sftp, SSH_FX_FAILURE); sftp_set_error(msg->sftp, SSH_FX_FAILURE);
@@ -877,7 +899,8 @@ sftp_status_message parse_status_msg(sftp_message msg){
return status; return status;
} }
void status_msg_free(sftp_status_message status){ void status_msg_free(sftp_status_message status)
{
if (status == NULL) { if (status == NULL) {
return; return;
} }