]> err.no Git - dpkg/commitdiff
Moved md5 code into generic buffer_copy loop.
authorAdam Heath <doogie@debian.org>
Mon, 25 Dec 2000 06:04:49 +0000 (06:04 +0000)
committerAdam Heath <doogie@debian.org>
Mon, 25 Dec 2000 06:04:49 +0000 (06:04 +0000)
main/configure.c

index f3d407d5ecc74222905783e41637678cdad719a3..af1fd59cfce7896a705099a8bd97f104d8f7800c 100644 (file)
@@ -535,38 +535,14 @@ int conffderef(struct pkginfo *pkg, struct varbuf *result, const char *in) {
 }
     
 static void md5hash(struct pkginfo *pkg, char hashbuf[33], const char *fn) {
-  static int fd, p1[2];
-  FILE *file;
-  pid_t c1;
-  int ok;
+  static int fd;
   
   fd= open(fn,O_RDONLY);
   if (fd >= 0) {
     push_cleanup(cu_closefd,ehflag_bombout, 0,0, 1,(void*)&fd);
-    m_pipe(p1);
-    push_cleanup(cu_closepipe,ehflag_bombout, 0,0, 1,(void*)&p1[0]);
-    if (!(c1= m_fork())) {
-      m_dup2(fd,0); m_dup2(p1[1],1); close(p1[0]); close(p1[1]);
-      execlp(MD5SUM,MD5SUM,(char*)0);
-      ohshite(_("failed to exec md5sum"));
-    }
-    close(p1[1]); close(fd);
-    file= fdopen(p1[0],"r");
-    push_cleanup(cu_closefile,ehflag_bombout, 0,0, 1,(void*)file);
-    if (!file) ohshite(_("unable to fdopen for md5sum of `%.250s'"),fn);
-    ok= 1;
-    memset(hashbuf,0,33);
-    if (fread(hashbuf,1,32,file) != 32) ok=0;
-    if (getc(file) != '\n') ok=0;
-    if (getc(file) != EOF) ok=0;
-    waitsubproc(c1,"md5sum",0);
-    if (strspn(hashbuf,"0123456789abcdef") != 32) ok=0;
-    if (ferror(file)) ohshite(_("error reading pipe from md5sum"));
-    if (fclose(file)) ohshite(_("error closing pipe from md5sum"));
-    pop_cleanup(ehflag_normaltidy); /* file= fdopen(p1[0]) */
-    pop_cleanup(ehflag_normaltidy); /* m_pipe() */
+    fd_md5(fd, hashbuf, -1, _("md5hash"));
     pop_cleanup(ehflag_normaltidy); /* fd= open(cdr.buf) */
-    if (!ok) ohshit(_("md5sum gave malformatted output `%.250s'"),hashbuf);
+    close(fd);
   } else if (errno == ENOENT) {
     strcpy(hashbuf,NONEXISTENTFLAG);
   } else {