mirror of
git://github.com/kovidgoyal/calibre.git
synced 2025-12-26 07:06:21 +01:00
calibre-mount-helper: Refuse to mount non block devices
This commit is contained in:
parent
b581b47ff1
commit
c940cb2cb6
1 changed files with 12 additions and 1 deletions
|
|
@ -236,8 +236,9 @@ int cleanup(const char *dev, const char *mp) {
|
|||
return cleanup_mount_point(mp);
|
||||
}
|
||||
|
||||
void check_dev(const char*dev) {
|
||||
void check_dev(const char *dev) {
|
||||
char buffer[PATH_MAX+1];
|
||||
struct stat file_info;
|
||||
|
||||
if (dev == NULL || strlen(dev) < strlen(DEV)) {
|
||||
fprintf(stderr, "Invalid arguments\n");
|
||||
|
|
@ -253,6 +254,16 @@ void check_dev(const char*dev) {
|
|||
fprintf(stderr, "Trying to operate on a dev node not under /dev\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (stat(dev, &file_info) != 0) {
|
||||
fprintf(stderr, "stat call on dev node failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (!S_ISBLK(file_info.st_mode)) {
|
||||
fprintf(stderr, "dev node is not a block device\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
|
|
|
|||
Loading…
Reference in a new issue