From: <abe...@us...> - 2013-03-29 22:12:59
|
Revision: 6023 http://astlinux.svn.sourceforge.net/astlinux/?rev=6023&view=rev Author: abelbeck Date: 2013-03-29 22:12:47 +0000 (Fri, 29 Mar 2013) Log Message: ----------- host-makedevs, fix makedevs to allow longer path names as per Buildroot upstream... Makedevs path name is currently limited to 40, changed it to PATH_MAX 4096 from linux/include/linux/limits.h Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2013-03-29 21:50:54 UTC (rev 6022) +++ branches/1.0/package/makedevs/makedevs.c 2013-03-29 22:12:47 UTC (rev 6023) @@ -410,7 +410,7 @@ unsigned int count = 0; unsigned int increment = 0; unsigned int start = 0; - char name[41]; + char name[4096]; char user[41]; char group[41]; char *full_name; @@ -419,7 +419,7 @@ linenum++; - if ((2 > sscanf(line, "%40s %c %o %40s %40s %u %u %u %u %u", name, + if ((2 > sscanf(line, "%4095s %c %o %40s %40s %u %u %u %u %u", name, &type, &mode, user, group, &major, &minor, &start, &increment, &count)) || ((major | minor | start | count | increment) > 0xfffff)) @@ -536,5 +536,5 @@ } fclose(table); - return 0; + return ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-02-01 12:46:10
|
Revision: 7491 http://sourceforge.net/p/astlinux/code/7491 Author: abelbeck Date: 2016-02-01 12:46:08 +0000 (Mon, 01 Feb 2016) Log Message: ----------- build system, package/makedevs: use the rooted /etc/passwd and /etc/group Ref: https://git.busybox.net/buildroot/commit/package?id=95dda394d9f2487d54c6ec529c3f9a7fd341a582 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-02-01 12:27:16 UTC (rev 7490) +++ branches/1.0/package/makedevs/makedevs.c 2016-02-01 12:46:08 UTC (rev 7491) @@ -37,6 +37,9 @@ const char *bb_applet_name; +#define PASSWD_PATH "etc/passwd" /* MUST be relative */ +#define GROUP_PATH "etc/group" /* MUST be relative */ + void bb_verror_msg(const char *s, va_list p) { fflush(stdout); @@ -251,10 +254,20 @@ long my_getpwnam(const char *name) { struct passwd *myuser; + FILE *stream; - myuser = getpwnam(name); - if (myuser==NULL) - bb_error_msg_and_die("unknown user name: %s", name); + stream = bb_xfopen(PASSWD_PATH, "r"); + while(1) { + errno = 0; + myuser = fgetpwent(stream); + if (myuser == NULL) + bb_error_msg_and_die("unknown user name: %s", name); + if (errno) + bb_perror_msg_and_die("fgetpwent"); + if (!strcmp(name, myuser->pw_name)) + break; + } + fclose(stream); return myuser->pw_uid; } @@ -262,12 +275,22 @@ long my_getgrnam(const char *name) { struct group *mygroup; + FILE *stream; - mygroup = getgrnam(name); - if (mygroup==NULL) - bb_error_msg_and_die("unknown group name: %s", name); + stream = bb_xfopen(GROUP_PATH, "r"); + while(1) { + errno = 0; + mygroup = fgetgrent(stream); + if (mygroup == NULL) + bb_error_msg_and_die("unknown group name: %s", name); + if (errno) + bb_perror_msg_and_die("fgetgrent"); + if (!strcmp(name, mygroup->gr_name)) + break; + } + fclose(stream); - return (mygroup->gr_gid); + return mygroup->gr_gid; } unsigned long get_ug_id(const char *s, long (*my_getxxnam)(const char *)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 14:13:17
|
Revision: 7933 http://sourceforge.net/p/astlinux/code/7933 Author: abelbeck Date: 2016-11-06 14:13:15 +0000 (Sun, 06 Nov 2016) Log Message: ----------- build system, host-makedevs, resync device creation with upstream busybox Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 13:53:32 UTC (rev 7932) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933) @@ -500,6 +500,8 @@ } else { dev_t rdev; + unsigned i; + char *full_name_inc; if (type == 'p') { mode |= S_IFIFO; @@ -515,43 +517,24 @@ goto loop; } - if (count > 0) { - int i; - char *full_name_inc; - - full_name_inc = xmalloc(strlen(full_name) + 8); - for (i = 0; i < count; i++) { - sprintf(full_name_inc, "%s%d", full_name, start + i); - rdev = makedev(major, minor + i * increment); - if (mknod(full_name_inc, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - else if (chown(full_name_inc, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - } - free(full_name_inc); - } else { - rdev = makedev(major, minor); - if (mknod(full_name, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); + full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); + if (count) + count--; + for (i = start; i <= start + count; i++) { + sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); + rdev = makedev(major, minor + (i - start) * increment); + if (mknod(full_name_inc, mode, rdev) < 0) { + bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - else if (chown(full_name, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name); + } else if (chown(full_name_inc, uid, gid) < 0) { + bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); + } else if (chmod(full_name_inc, mode) < 0) { + bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); ret = EXIT_FAILURE; } } + free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 18:13:44
|
Revision: 7934 http://sourceforge.net/p/astlinux/code/7934 Author: abelbeck Date: 2016-11-06 18:13:41 +0000 (Sun, 06 Nov 2016) Log Message: ----------- revert r7933 Revision Links: -------------- http://sourceforge.net/p/astlinux/code/7933 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934) @@ -500,8 +500,6 @@ } else { dev_t rdev; - unsigned i; - char *full_name_inc; if (type == 'p') { mode |= S_IFIFO; @@ -517,24 +515,43 @@ goto loop; } - full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); - if (count) - count--; - for (i = start; i <= start + count; i++) { - sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); - rdev = makedev(major, minor + (i - start) * increment); - if (mknod(full_name_inc, mode, rdev) < 0) { - bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); + if (count > 0) { + int i; + char *full_name_inc; + + full_name_inc = xmalloc(strlen(full_name) + 8); + for (i = 0; i < count; i++) { + sprintf(full_name_inc, "%s%d", full_name, start + i); + rdev = makedev(major, minor + i * increment); + if (mknod(full_name_inc, mode, rdev) == -1) { + bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + else if (chown(full_name_inc, uid, gid) == -1) { + bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ + bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + } + free(full_name_inc); + } else { + rdev = makedev(major, minor); + if (mknod(full_name, mode, rdev) == -1) { + bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); ret = EXIT_FAILURE; - } else if (chown(full_name_inc, uid, gid) < 0) { - bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); + } + else if (chown(full_name, uid, gid) == -1) { + bb_perror_msg("line %d: chown failed for %s", linenum, full_name); ret = EXIT_FAILURE; - } else if (chmod(full_name_inc, mode) < 0) { - bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); + } + if ((mode != -1) && (chmod(full_name, mode) < 0)){ + bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); ret = EXIT_FAILURE; } } - free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 22:45:29
|
Revision: 7935 http://sourceforge.net/p/astlinux/code/7935 Author: abelbeck Date: 2016-11-06 22:45:27 +0000 (Sun, 06 Nov 2016) Log Message: ----------- build system, host-makedevs, implement upstream Buildroot fixes, one 'mknod' call added since we are using fakeroot Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0 Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=c85cd189dc1ded92b78c5968860ff447ec9815ad Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 22:45:27 UTC (rev 7935) @@ -500,6 +500,9 @@ } else { dev_t rdev; + unsigned i; + char *full_name_inc; + struct stat st; if (type == 'p') { mode |= S_IFIFO; @@ -515,43 +518,38 @@ goto loop; } - if (count > 0) { - int i; - char *full_name_inc; - - full_name_inc = xmalloc(strlen(full_name) + 8); - for (i = 0; i < count; i++) { - sprintf(full_name_inc, "%s%d", full_name, start + i); - rdev = makedev(major, minor + i * increment); - if (mknod(full_name_inc, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); + full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); + if (count) + count--; + for (i = start; i <= start + count; i++) { + sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); + rdev = makedev(major, minor + (i - start) * increment); + mknod(full_name_inc, mode, rdev); /* mknod required if using fakeroot */ + if (stat(full_name_inc, &st) == 0) { + if ((mode & S_IFMT) != (st.st_mode & S_IFMT)) { + bb_error_msg("line %d: node %s exists but is of wrong file type", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - else if (chown(full_name_inc, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); + if (st.st_rdev != rdev) { + bb_error_msg("line %d: node %s exists but is wrong device number", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - } - free(full_name_inc); - } else { - rdev = makedev(major, minor); - if (mknod(full_name, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); + } else if (mknod(full_name_inc, mode, rdev) < 0) { + bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - else if (chown(full_name, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name); + if (chown(full_name_inc, uid, gid) < 0) { + bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); + } else if (chmod(full_name_inc, mode) < 0) { + bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); ret = EXIT_FAILURE; } } + free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-28 15:04:20
|
Revision: 7995 http://sourceforge.net/p/astlinux/code/7995 Author: abelbeck Date: 2016-11-28 15:04:18 +0000 (Mon, 28 Nov 2016) Log Message: ----------- makedevs, revert cherry-picked upstream Buildroot fix, a part of r7935 Ref: https://git.buildroot.net/buildroot/commit/package?id=4c6d5e33ae1bdfc85c9734897c357a804bfd7435 Ref: http://lists.busybox.net/pipermail/buildroot/2016-November/177861.html Revision Links: -------------- http://sourceforge.net/p/astlinux/code/7935 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-28 14:09:47 UTC (rev 7994) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-28 15:04:18 UTC (rev 7995) @@ -502,7 +502,6 @@ dev_t rdev; unsigned i; char *full_name_inc; - struct stat st; if (type == 'p') { mode |= S_IFIFO; @@ -524,24 +523,10 @@ for (i = start; i <= start + count; i++) { sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); rdev = makedev(major, minor + (i - start) * increment); - mknod(full_name_inc, mode, rdev); /* mknod required if using fakeroot */ - if (stat(full_name_inc, &st) == 0) { - if ((mode & S_IFMT) != (st.st_mode & S_IFMT)) { - bb_error_msg("line %d: node %s exists but is of wrong file type", linenum, full_name_inc); - ret = EXIT_FAILURE; - continue; - } - if (st.st_rdev != rdev) { - bb_error_msg("line %d: node %s exists but is wrong device number", linenum, full_name_inc); - ret = EXIT_FAILURE; - continue; - } - } else if (mknod(full_name_inc, mode, rdev) < 0) { + if (mknod(full_name_inc, mode, rdev) < 0) { bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; - continue; - } - if (chown(full_name_inc, uid, gid) < 0) { + } else if (chown(full_name_inc, uid, gid) < 0) { bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; } else if (chmod(full_name_inc, mode) < 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |