]> err.no Git - dpkg/commitdiff
* Reverted the new tmpfile stuff in dpkg-deb. For some reason it's
authorBen Collins <bcollins@debian.org>
Tue, 19 Oct 1999 14:42:23 +0000 (14:42 +0000)
committerBen Collins <bcollins@debian.org>
Tue, 19 Oct 1999 14:42:23 +0000 (14:42 +0000)
    completely corrupting the new package

ChangeLog
dpkg-deb/build.c
dpkg-deb/info.c

index 8b1ba574277790e03048d418b52de87aa5d8c811..b12d64603ad05d630ebd93e15565990120876409 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Oct 19 09:59:22 EDT 1999 Ben Collins <bcollins.debian.org>
+
+  * Reverted the new tmpfile stuff in dpkg-deb. For some reason it's
+    completely corrupting the new package
+
 Mon Oct 18 18:40:35 EDT 1999 Ben Collins <bcollins.debian.org>
 
   * Reimplemented a better *stat cache for the removal checking code,
index e7d834d3a147f27dd0e00a017684b78b1d18bca5..d02ae0e851b876a285a738d27ee82533469d026f 100644 (file)
@@ -57,13 +57,13 @@ void do_build(const char *const *argv) {
     PREINSTFILE, POSTINSTFILE, PRERMFILE, POSTRMFILE, 0
   };
   
-  char *m, *tmpd, *tmpf;
+  char *m;
   const char *debar, *directory, *const *mscriptp, *versionstring, *arch;
   char *controlfile;
   struct pkginfo *checkedinfo;
   struct arbitraryfield *field;
   FILE *ar, *gz, *cf;
-  int p1[2],p2[2], warns, errs, n, c, subdir, gzfd;
+  int p1[2],p2[2], warns, errs, n, c, subdir;
   pid_t c1,c2,c3,c4,c5;
   struct stat controlstab, datastab, mscriptstab, debarstab;
   char conffilename[MAXCONFFILENAME+1];
@@ -209,16 +209,7 @@ void do_build(const char *const *argv) {
     execlp(TAR,"tar","-cf","-",".",(char*)0); ohshite(_("failed to exec tar -cf"));
   }
   close(p1[1]);
-
-  if (!(tmpd = getenv("TMPDIR")))
-    tmpd= "/tmp";
-  tmpf= malloc(strlen(tmpd) + strlen("/dpkg.XXXXXX"));
-  strcpy(tmpf, tmpd);
-  strcat(tmpf, "/dpkg.XXXXXX");
-  if (!(gzfd= mkstemp(tmpf)) || !(gz= fdopen(gzfd, "r+")))
-    ohshite(_("failed to make tmpfile (control)"));
-
-
+  if (!(gz= tmpfile())) ohshite(_("failed to make tmpfile (control)"));
   if (!(c2= m_fork())) {
     m_dup2(p1[0],0); m_dup2(fileno(gz),1); close(p1[0]);
     execlp(GZIP,"gzip","-9c",(char*)0); ohshite(_("failed to exec gzip -9c"));
@@ -255,12 +246,8 @@ void do_build(const char *const *argv) {
   
   if (!oldformatflag) {
     fclose(gz);
-    strcpy(tmpf, tmpd);
-    strcat(tmpf, "/dpkg.XXXXXX");
-    if (!(gzfd= mkstemp(tmpf)) || !(gz= fdopen(gzfd, "r+")))
-      ohshite(_("failed to make tmpfile (data)"));
+    if (!(gz= tmpfile())) ohshite(_("failed to make tmpfile (data)"));
   }
-  free(tmpf);
   m_pipe(p2);
   if (!(c4= m_fork())) {
     m_dup2(p2[1],1); close(p2[0]); close(p2[1]);
index f258879cebff7dfea94d165d6589ec2152b27fc6..438d76fdcffc4ae114e1aca77cd38a8bab190415 100644 (file)
@@ -59,13 +59,12 @@ static void info_prepare(const char *const **argvp,
                          const char **debarp,
                          const char **directoryp,
                          int admininfo) {
-  char *dbuf;
+  static char dbuf[L_tmpnam];
   pid_t c1;
   
   *debarp= *(*argvp)++;
   if (!*debarp) badusage(_("--%s needs a .deb filename argument"),cipaction->olong);
-  dbuf = tempnam(NULL, "dpkg");
-  if (!dbuf) ohshite(_("failed to make temporary filename"));
+  if (!tmpnam(dbuf)) ohshite(_("failed to make temporary filename"));
   *directoryp= dbuf;
 
   if (!(c1= m_fork())) {
@@ -74,7 +73,6 @@ static void info_prepare(const char *const **argvp,
   waitsubproc(c1,"rm -rf",0);
   push_cleanup(cu_info_prepare,-1, 0,0, 1, (void*)dbuf);
   extracthalf(*debarp, dbuf, "mx", admininfo);
-  free(dbuf);
 }
 
 static int ilist_select(const struct dirent *de) {