X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libbb%2Ffind_root_device.c;h=c595321dfe832f0197e2363047a387f997664edf;hb=1dc0ccafddf9b5f540008b7cabbf3ab1f4f53ee3;hp=0a3f1bc77eb65749e9b44842d9b35a00347cd84d;hpb=bdfd0d78bc44e73d693510e70087857785b3b521;p=oweals%2Fbusybox.git diff --git a/libbb/find_root_device.c b/libbb/find_root_device.c index 0a3f1bc77..c595321df 100644 --- a/libbb/find_root_device.c +++ b/libbb/find_root_device.c @@ -2,9 +2,7 @@ /* * Utility routines. * - * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen - * Copyright (C) 1999,2000,2001 by Erik Andersen - * Patched by a bunch of people. Feel free to acknowledge your work. + * Copyright (C) 1999-2003 by Erik Andersen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,23 +36,23 @@ extern char *find_real_root_device_name(const char* name) dev_t dev; if (stat("/", &rootStat) != 0) - perror_msg("could not stat '/'"); + bb_perror_msg("could not stat '/'"); else { if ((dev = rootStat.st_rdev)==0) dev=rootStat.st_dev; dir = opendir("/dev"); if (!dir) - perror_msg("could not open '/dev'"); + bb_perror_msg("could not open '/dev'"); else { while((entry = readdir(dir)) != NULL) { - - /* Must skip ".." since that is "/", and so we + const char *myname = entry->d_name; + /* Must skip ".." since that is "/", and so we * would get a false positive on ".." */ - if (strcmp(entry->d_name, "..") == 0) + if (myname[0] == '.' && myname[1] == '.' && !myname[2]) continue; - fileName = concat_path_file("/dev", entry->d_name); + fileName = concat_path_file("/dev", myname); /* Some char devices have the same dev_t as block * devices, so make sure this is a block device */ @@ -69,7 +67,7 @@ extern char *find_real_root_device_name(const char* name) } } if(fileName==NULL) - fileName=xstrdup("/dev/root"); + fileName = bb_xstrdup("/dev/root"); return fileName; }