~vcs-imports/libssh/trunk

« back to all changes in this revision

Viewing changes to src/sftp.c

  • Committer: Andreas Schneider
  • Author(s): Anderson Toshiyuki Sasaki
  • Date: 2018-12-07 16:47:00 UTC
  • Revision ID: git-v1:83d827d7dd0e382969f57525a13954114ddf5c22
sftp: Set sftp error when received unexpected message

Set sftp error to SSH_FX_BAD_MESSAGE if an unexpected message is
received.

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>

Show diffs side-by-side

added added

removed removed

Lines of Context:
858
858
  if (msg->packet_type != SSH_FXP_STATUS) {
859
859
    ssh_set_error(msg->sftp->session, SSH_FATAL,
860
860
        "Not a ssh_fxp_status message passed in!");
 
861
    sftp_set_error(msg->sftp, SSH_FX_BAD_MESSAGE);
861
862
    return NULL;
862
863
  }
863
864
 
1557
1558
                ssh_set_error(sftp->session, SSH_FATAL,
1558
1559
                        "Unsupported message back %d", msg->packet_type);
1559
1560
                sftp_message_free(msg);
 
1561
                sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
1560
1562
 
1561
1563
                return NULL;
1562
1564
        }
1677
1679
            ssh_set_error(sftp->session, SSH_FATAL,
1678
1680
                    "Received message %d during sftp_handle_close!", msg->packet_type);
1679
1681
            sftp_message_free(msg);
 
1682
            sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
1680
1683
    }
1681
1684
 
1682
1685
    return -1;
1830
1833
            ssh_set_error(sftp->session, SSH_FATAL,
1831
1834
                    "Received message %d during open!", msg->packet_type);
1832
1835
            sftp_message_free(msg);
 
1836
            sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
1833
1837
    }
1834
1838
 
1835
1839
    return NULL;
1943
1947
      ssh_set_error(sftp->session, SSH_FATAL,
1944
1948
          "Received message %d during read!", msg->packet_type);
1945
1949
      sftp_message_free(msg);
 
1950
      sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
1946
1951
      return -1;
1947
1952
  }
1948
1953
 
2065
2070
    default:
2066
2071
      ssh_set_error(sftp->session,SSH_FATAL,"Received message %d during read!",msg->packet_type);
2067
2072
      sftp_message_free(msg);
 
2073
      sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2068
2074
      return SSH_ERROR;
2069
2075
  }
2070
2076
 
2146
2152
      ssh_set_error(sftp->session, SSH_FATAL,
2147
2153
          "Received message %d during write!", msg->packet_type);
2148
2154
      sftp_message_free(msg);
 
2155
      sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2149
2156
      return -1;
2150
2157
  }
2151
2158
 
2259
2266
    ssh_set_error(sftp->session,SSH_FATAL,
2260
2267
        "Received message %d when attempting to remove file", msg->packet_type);
2261
2268
    sftp_message_free(msg);
 
2269
    sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2262
2270
  }
2263
2271
 
2264
2272
  return -1;
2329
2337
        "Received message %d when attempting to remove directory",
2330
2338
        msg->packet_type);
2331
2339
    sftp_message_free(msg);
 
2340
    sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2332
2341
  }
2333
2342
 
2334
2343
  return -1;
2431
2440
                "Received message %d when attempting to make directory",
2432
2441
                msg->packet_type);
2433
2442
        sftp_message_free(msg);
 
2443
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2434
2444
    }
2435
2445
 
2436
2446
    return -1;
2512
2522
        "Received message %d when attempting to rename",
2513
2523
        msg->packet_type);
2514
2524
    sftp_message_free(msg);
 
2525
    sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2515
2526
  }
2516
2527
 
2517
2528
  return -1;
2595
2606
        ssh_set_error(sftp->session, SSH_FATAL,
2596
2607
                "Received message %d when attempting to set stats", msg->packet_type);
2597
2608
        sftp_message_free(msg);
 
2609
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2598
2610
    }
2599
2611
 
2600
2612
    return -1;
2726
2738
    ssh_set_error(sftp->session, SSH_FATAL,
2727
2739
        "Received message %d when attempting to set stats", msg->packet_type);
2728
2740
    sftp_message_free(msg);
 
2741
    sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2729
2742
  }
2730
2743
 
2731
2744
  return -1;
2818
2831
        ssh_set_error(sftp->session, SSH_FATAL,
2819
2832
                "Received message %d when attempting to set stats", msg->packet_type);
2820
2833
        sftp_message_free(msg);
 
2834
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2821
2835
    }
2822
2836
 
2823
2837
    return NULL;
2934
2948
        ssh_set_error(sftp->session, SSH_FATAL,
2935
2949
                "Received message %d when attempting to get statvfs", msg->packet_type);
2936
2950
        sftp_message_free(msg);
 
2951
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
2937
2952
    }
2938
2953
 
2939
2954
    return NULL;
3028
3043
                      "Received message %d when attempting to set stats",
3029
3044
                      msg->packet_type);
3030
3045
        sftp_message_free(msg);
 
3046
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
3031
3047
    }
3032
3048
 
3033
3049
    rc = -1;
3107
3123
        ssh_set_error(sftp->session, SSH_FATAL,
3108
3124
                "Received message %d when attempting to set stats", msg->packet_type);
3109
3125
        sftp_message_free(msg);
 
3126
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
3110
3127
    }
3111
3128
 
3112
3129
    return NULL;
3202
3219
        ssh_set_error(sftp->session, SSH_FATAL,
3203
3220
                "Received message %d when attempting to set stats", msg->packet_type);
3204
3221
        sftp_message_free(msg);
 
3222
        sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
3205
3223
    }
3206
3224
 
3207
3225
    return NULL;
3276
3294
    ssh_set_error(sftp->session, SSH_FATAL,
3277
3295
            "Received mesg %d during stat()", msg->packet_type);
3278
3296
    sftp_message_free(msg);
 
3297
    sftp_set_error(sftp, SSH_FX_BAD_MESSAGE);
3279
3298
 
3280
3299
    return NULL;
3281
3300
}
3350
3369
    ssh_set_error(file->sftp->session, SSH_FATAL,
3351
3370
            "Received msg %d during fstat()", msg->packet_type);
3352
3371
    sftp_message_free(msg);
 
3372
    sftp_set_error(file->sftp, SSH_FX_BAD_MESSAGE);
3353
3373
 
3354
3374
    return NULL;
3355
3375
}