Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37908983
en ru br
ALT Linux repositórios
S:4.1.6-alt3
5.0: 4.1.6-alt1

Group :: Sistema/Bibliotecas
RPM: libgif

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: libgif-4.1.6-alt-tmp.patch
Download


--- giflib/configure.ac
+++ giflib/configure.ac
@@ -3,6 +3,7 @@
 AC_CONFIG_SRCDIR([lib/dgif_lib.c])
 AM_INIT_AUTOMAKE([gnu check-news dist-bzip2 -Wall])
 AM_CONFIG_HEADER(config.h)
+AC_USE_SYSTEM_EXTENSIONS
 
 dnl Checks for programs.
 AC_PROG_LIBTOOL
--- giflib/util/gifinto.c
+++ giflib/util/gifinto.c
@@ -77,10 +77,9 @@
 ******************************************************************************/
 int main(int argc, char **argv)
 {
-    int	Error, NumFiles,
+    int	Error, NumFiles, fd,
 	MinSizeFlag = FALSE, HelpFlag = FALSE;
-    char **FileName = NULL,
-        TmpName[80], FoutTmpName[80], FullPath[80], DefaultName[80], s[80], *p;
+    char **FileName = NULL, *FoutTmpName;
     FILE *Fin, *Fout;
 
     if ((Error = GAGetArgs(argc, argv, CtrlStr, &GifQuietPrint,
@@ -120,27 +119,9 @@ int main(int argc, char **argv)
     }
 #endif
 
-    /* Isolate the directory where our destination is, and set tmp file name */
-    /* in the very same directory.					     */
-    strcpy(FullPath, *FileName);
-    if ((p = strrchr(FullPath, '/')) != NULL ||
-	(p = strrchr(FullPath, '\\')) != NULL)
-	p[1] = 0;
-    else if ((p = strrchr(FullPath, ':')) != NULL)
-	p[1] = 0;
-    else
-	FullPath[0] = 0;		  /* No directory or disk specified. */
-
-    strcpy(FoutTmpName, FullPath);   /* Generate destination temporary name. */
-    /* Make sure the temporary is made in the current directory: */
-    p = tmpnam(TmpName);
-    if (strrchr(p, '/')) p = strrchr(p, '/') + 1;
-    if (strrchr(p, '\\')) p = strrchr(p, '\\') + 1;
-    if (strlen(p) == 0) p = DEFAULT_TMP_NAME;
-    strcat(FoutTmpName, p);
-
-    Fout = fopen(FoutTmpName, "wb");
-    if (Fout == NULL)
+    if ((asprintf(&FoutTmpName, "%s-XXXXXX", *FileName) < 0) ||
+        (fd = mkstemp(FoutTmpName)) < 0 ||
+	(Fout = fdopen(fd, "wb")) == NULL)
     {
 	GIF_EXIT("Failed to open output.");
     }
@@ -162,17 +143,8 @@ int main(int argc, char **argv)
 	fclose(Fout);
 	unlink(*FileName);
 	if (rename(FoutTmpName, *FileName) != 0) {
-	    strcpy(DefaultName, FullPath);
-	    strcat(DefaultName, DEFAULT_OUT_NAME);
-	    if (rename(FoutTmpName, DefaultName) == 0) {
-		sprintf(s, "Failed to rename out file - left as %s.",
-								DefaultName);
-		GIF_MESSAGE(s);
-	    }
-	    else {
 		unlink(FoutTmpName);
 		GIF_MESSAGE("Failed to rename out file - deleted.");
-	    }
 	}
     }
     else {
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009