diff options
author | Colin Watson <cjwatson@debian.org> | 2003-08-01 00:06:47 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2003-08-01 00:06:47 +0000 |
commit | 27a7bf728d626f6bf0afffe456bd04f74d53c228 (patch) | |
tree | 92bdf2810c151d18ae215608d47835d29d1412ef /src/manp.c | |
parent | 605f3f035d09d2d44189ab811127e2aa431d0786 (diff) |
* src/manp.c (mkcatdirs): Allocate manname and catname dynamically.
Diffstat (limited to 'src/manp.c')
-rw-r--r-- | src/manp.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -649,8 +649,7 @@ extern uid_t euid; /* initial effective user id */ static void mkcatdirs (const char *mandir, const char *catdir) { - char manname[PATH_MAX+6]; - char catname[PATH_MAX+6]; + char *manname, *catname; #ifdef SECURE_MAN_UID struct passwd *man_owner = get_man_owner (); #endif @@ -679,7 +678,8 @@ mkcatdirs (const char *mandir, const char *catdir) drop_effective_privs (); } /* then the hierarchy */ - sprintf (catname, "%s/cat1", catdir); + catname = strappend (NULL, catdir, "/cat1", NULL); + manname = strappend (NULL, mandir, "/man1", NULL); if (is_directory (catdir) == 1) { int j; regain_effective_privs (); @@ -688,8 +688,8 @@ mkcatdirs (const char *mandir, const char *catdir) "creating catdir hierarchy %s ", catdir); for (j = 1; j <= 9; j++) { - sprintf (catname, "%s/cat%d", catdir, j); - sprintf (manname, "%s/man%d", mandir, j); + catname[strlen (catname) - 1] = '0' + j; + manname[strlen (manname) - 1] = '0' + j; if ((is_directory (manname) == 1) && (is_directory (catname) != 1)) { if (mkdir (catname, @@ -711,6 +711,8 @@ mkcatdirs (const char *mandir, const char *catdir) fprintf (stderr, "\n"); drop_effective_privs (); } + free (catname); + free (manname); umask (oldmask); } } |