mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
calibre-mount-helper: Refuse to mount non block devices
This commit is contained in:
parent
b581b47ff1
commit
c940cb2cb6
@ -236,8 +236,9 @@ int cleanup(const char *dev, const char *mp) {
|
|||||||
return cleanup_mount_point(mp);
|
return cleanup_mount_point(mp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void check_dev(const char*dev) {
|
void check_dev(const char *dev) {
|
||||||
char buffer[PATH_MAX+1];
|
char buffer[PATH_MAX+1];
|
||||||
|
struct stat file_info;
|
||||||
|
|
||||||
if (dev == NULL || strlen(dev) < strlen(DEV)) {
|
if (dev == NULL || strlen(dev) < strlen(DEV)) {
|
||||||
fprintf(stderr, "Invalid arguments\n");
|
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");
|
fprintf(stderr, "Trying to operate on a dev node not under /dev\n");
|
||||||
exit(EXIT_FAILURE);
|
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)
|
int main(int argc, char** argv)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user