Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 159667 Details for
Bug 249057
extract on NFS out of space doesn't return errors.
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
multi arch change
unzip-close_check.patch (text/plain), 23.22 KB, created by
Jose Plans
on 2007-07-20 17:09:07 UTC
(
hide
)
Description:
multi arch change
Filename:
MIME Type:
Creator:
Jose Plans
Created:
2007-07-20 17:09:07 UTC
Size:
23.22 KB
patch
obsolete
>--- unzip-5.51/unzpriv.h.close 2007-07-20 16:40:39.000000000 +0100 >+++ unzip-5.51/unzpriv.h 2007-07-20 16:41:06.000000000 +0100 >@@ -2139,7 +2139,7 @@ char *GetLoadPath OF((__GPRO)); > int SetFileSize OF((FILE *file, ulg filesize)); /* local */ > #endif > #ifndef MTS /* macro in MTS */ >- void close_outfile OF((__GPRO)); /* local */ >+ int close_outfile OF((__GPRO)); /* local */ > #endif > #ifdef SET_SYMLINK_ATTRIBS > int set_symlnk_attribs OF((__GPRO__ slinkentry *slnk_entry)) /* local */ >--- unzip-5.51/flexos/flexos.c.close 2007-07-20 16:41:35.000000000 +0100 >+++ unzip-5.51/flexos/flexos.c 2007-07-20 16:43:11.000000000 +0100 >@@ -762,7 +762,8 @@ int checkdir(__G__ pathcomp, flag) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+/* FIXME check return codes! */ >+int close_outfile(__G) > __GDEF > /* > * FlexOS VERSION >@@ -775,6 +776,7 @@ void close_outfile(__G) > { > DISKFILE df; > LONG fnum; >+ int errval = PK_OK; > > struct { /* date and time words */ > union { /* DOS file modification time word */ >@@ -806,7 +808,7 @@ void close_outfile(__G) > Info(slide, 0x201, ((char *)slide, > "warning: cannot open %s to set the time\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > > if (s_get(T_FILE, fnum, &df, DSKFSIZE) < 0) { >@@ -814,7 +816,7 @@ void close_outfile(__G) > > Info(slide, 0x201, ((char *)slide, > "warning: cannot get info on %s\n", FnFilter1(G.filename))); >- return; >+ return errval; > } > > /*--------------------------------------------------------------------------- >@@ -880,6 +882,7 @@ void close_outfile(__G) > "warning: cannot set info for %s\n", FnFilter1(G.filename))); > > s_close(0, fnum); >+ return errval; > } > > #ifndef SFX >--- unzip-5.51/vms/vms.c.close 2007-07-20 16:44:27.000000000 +0100 >+++ unzip-5.51/vms/vms.c 2007-07-20 16:45:37.000000000 +0100 >@@ -1694,17 +1694,17 @@ static int WriteRecord(__G__ rec, len) > > > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > { >- int status; >+ int status, errval = PK_OK; > > status = (*_flush_routine)(__G__ NULL, 0, 1); > if (status) >- return /* PK_DISK */; >+ return PK_DISK; /* PK_DISK */; > if (uO.cflag) >- return /* PK_COOL */; /* Don't close stdout */ >- /* return */ (*_close_routine)(__G); >+ return PK_COOK; /* PK_COOL */; /* Don't close stdout */ >+ return (*_close_routine)(__G); > } > > >--- unzip-5.51/acorn/acorn.c.close 2007-07-20 16:46:17.000000000 +0100 >+++ unzip-5.51/acorn/acorn.c 2007-07-20 16:47:21.000000000 +0100 >@@ -855,11 +855,12 @@ static int uxtime2acornftime(unsigned *p > /****************************/ > /* Function close_outfile() */ > /****************************/ >- >-void close_outfile(__G) >+/* FIXME change return codes */ >+int close_outfile(__G) > __GDEF > { > zvoid *spark_ef; >+ int errval = PK_OK; > > fclose(G.outfile); > >@@ -906,6 +907,7 @@ void close_outfile(__G) > SWI_OS_File_1(G.filename, loadaddr, execaddr, attr); > } > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/human68k/human68k.c.close 2007-07-20 16:47:47.000000000 +0100 >+++ unzip-5.51/human68k/human68k.c 2007-07-20 16:48:49.000000000 +0100 >@@ -794,9 +794,11 @@ typedef union { > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+/* FIXME change return codes */ >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > #ifdef USE_EF_UT_TIME > dos_fdatetime dos_dt; > iztimes z_utime; >@@ -851,6 +853,7 @@ void close_outfile(__G) > > _dos_chmod(G.filename, G.pInfo->file_attr); > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/qdos/qdos.c.close 2007-07-20 16:49:37.000000000 +0100 >+++ unzip-5.51/qdos/qdos.c 2007-07-20 16:53:21.000000000 +0100 >@@ -955,9 +955,11 @@ static void qfix(__G__ ef_ptr, ef_len) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+/* FIXME change return codes */ >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > union { > iztimes t3; /* mtime, atime, ctime */ > struct utimbuf t2; /* modtime, actime */ >@@ -1023,6 +1025,7 @@ void close_outfile(__G) > "warning: cannot set the time for %s\n", FnFilter1(G.filename))); > } > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/tops20/tops20.c.close 2007-07-20 16:53:56.000000000 +0100 >+++ unzip-5.51/tops20/tops20.c 2007-07-20 16:54:58.000000000 +0100 >@@ -81,7 +81,8 @@ int mapattr(__G) /* just like Uni > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+/* FIXME change error return */ >+int close_outfile(__G) > __GDEF > { > # define JSYS_CLASS 0070000000000 >@@ -94,6 +95,7 @@ void close_outfile(__G) > int yr, mo, dy, hh, mm, ss; > char temp[100]; > unsigned tad; >+ int errval = PK_OK; > #ifdef USE_EF_UT_TIME > iztimes z_utime; > struct tm *t; >@@ -152,7 +154,7 @@ void close_outfile(__G) > Info(slide, 1, ((char *)slide, "error: IDTIM failure for %s\n", > G.filename)); > fclose(G.outfile); >- return; >+ return errval; > } > > tad = ablock[2]; >@@ -170,6 +172,7 @@ void close_outfile(__G) > > fclose(G.outfile); > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/novell/novell.c.close 2007-07-20 17:01:42.000000000 +0100 >+++ unzip-5.51/novell/novell.c 2007-07-20 17:02:41.000000000 +0100 >@@ -755,12 +755,14 @@ int checkdir(__G__ pathcomp, flag) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+/* FIXME check returns */ >+int close_outfile(__G) > __GDEF > { > WORD date = G.lrec.last_mod_dos_datetime >> 16; > WORD time = G.lrec.last_mod_dos_datetime & 0xffff; > static struct ModifyStructure changeBuffer; >+ int errval = PK_OK; > > fclose(G.outfile); > >@@ -788,6 +790,7 @@ void close_outfile(__G) /* GRR: chang > if (chmod(G.filename, 0xffff & G.pInfo->file_attr)) > perror("chmod (file attributes) error"); > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/cmsmvs/vmmvs.c.close 2007-07-20 17:03:11.000000000 +0100 >+++ unzip-5.51/cmsmvs/vmmvs.c 2007-07-20 17:04:00.000000000 +0100 >@@ -166,10 +166,12 @@ int open_outfile(__G) /* retur > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > fclose(G.outfile); >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/wince/intrface.cpp.close 2007-07-20 17:04:32.000000000 +0100 >+++ unzip-5.51/wince/intrface.cpp 2007-07-20 17:05:10.000000000 +0100 >@@ -1262,9 +1262,10 @@ int SetFileSize(FILE *file, ulg filesize > } /* end function SetFileSize() */ > > //****************************************************************************** >-void close_outfile(__GPRO) >+int close_outfile(__GPRO) > { > HANDLE hFile; >+ int errval = PK_OK; > > // Get the 3 time stamps for the file. > FILETIME ftCreated, ftAccessed, ftModified; >@@ -1333,7 +1334,7 @@ void close_outfile(__GPRO) > // Clear outfile so we know it is closed. > G.outfile = 0; > >- return; >+ return errval; > } > > //****************************************************************************** >--- unzip-5.51/theos/theos.c.close 2007-07-20 17:05:38.000000000 +0100 >+++ unzip-5.51/theos/theos.c 2007-07-20 17:06:33.000000000 +0100 >@@ -1037,13 +1037,14 @@ static int get_extattribs(__G__ pzt) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+int close_outfile(__G) > __GDEF > { > union { > iztimes t3; /* mtime, atime, ctime */ > ztimbuf t2; /* modtime, actime */ > } zt; >+ int errval = PK_OK; > > /*--------------------------------------------------------------------------- > If symbolic links are supported, allocate a storage area, put the uncom- >@@ -1092,6 +1093,7 @@ void close_outfile(__G) /* GRR: chang > chgrow(G.filename, v2_0extra()->filegrow); > } > #endif >+ return errval; > } /* end function close_outfile() */ > > #endif /* !MTS */ >--- unzip-5.51/beos/beos.c.close 2007-07-20 17:07:03.000000000 +0100 >+++ unzip-5.51/beos/beos.c 2007-07-20 17:08:19.000000000 +0100 >@@ -852,7 +852,7 @@ static int get_extattribs(__G__ pzt, z_u > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+int close_outfile(__G) > __GDEF > { > union { >@@ -861,6 +861,7 @@ void close_outfile(__G) /* GRR: chang > } zt; > ush z_uidgid[2]; > int have_uidgid_flg; >+ int errval = PK_OK; > > fclose(G.outfile); > >@@ -896,14 +897,14 @@ void close_outfile(__G) /* GRR: chang > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: mem alloc overflow\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > > if ((slnk_entry = (slinkentry *)malloc(slnk_entrysize)) == NULL) { > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: no mem\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > slnk_entry->next = NULL; > slnk_entry->targetlen = ucsize; >@@ -925,7 +926,7 @@ void close_outfile(__G) /* GRR: chang > FnFilter1(G.filename))); > free(slnk_entry); > fclose(G.outfile); >- return; >+ return errval; > } > fclose(G.outfile); /* close "link" file for good... */ > slnk_entry->target[ucsize] = '\0'; >@@ -938,7 +939,7 @@ void close_outfile(__G) /* GRR: chang > else > G.slink_head = slnk_entry; > G.slink_last = slnk_entry; >- return; >+ return errval; > } > #endif /* SYMLINKS */ > >@@ -995,6 +996,7 @@ void close_outfile(__G) /* GRR: chang > " (warning) cannot set times")); > } > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/atari/atari.c.close 2007-07-20 17:09:46.000000000 +0100 >+++ unzip-5.51/atari/atari.c 2007-07-20 17:11:00.000000000 +0100 >@@ -762,7 +762,7 @@ int checkdir(__G__ pathcomp, flag) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+int close_outfile(__G) > __GDEF > { > #ifdef USE_EF_UT_TIME >@@ -770,6 +770,7 @@ void close_outfile(__G) /* GRR: chang > iztimes zt; > #endif > ztimbuf tp; >+ int errval = PK_OK; > > fclose(G.outfile); > >@@ -798,14 +799,14 @@ void close_outfile(__G) /* GRR: chang > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: mem alloc overflow\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > > if ((slnk_entry = (slinkentry *)malloc(slnk_entrysize)) == NULL) { > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: no mem\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > slnk_entry->next = NULL; > slnk_entry->targetlen = ucsize; >@@ -825,7 +826,7 @@ void close_outfile(__G) /* GRR: chang > FnFilter1(G.filename))); > free(slnk_entry); > fclose(G.outfile); >- return; >+ return errval; > } > fclose(G.outfile); /* close "link" file for good... */ > slnk_entry->target[ucsize] = '\0'; >@@ -838,7 +839,7 @@ void close_outfile(__G) /* GRR: chang > else > G.slink_head = slnk_entry; > G.slink_last = slnk_entry; >- return; >+ return errval; > } > > /*--------------------------------------------------------------------------- >@@ -894,6 +895,7 @@ void close_outfile(__G) /* GRR: chang > perror("chmod (file attributes) error"); > #endif > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/win32/win32.c.close 2007-07-20 17:12:02.000000000 +0100 >+++ unzip-5.51/win32/win32.c 2007-07-20 17:13:20.000000000 +0100 >@@ -1202,7 +1202,7 @@ int SetFileSize(FILE *file, ulg filesize > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > { > FILETIME Modft; /* File time type defined in NT, `last modified' time */ >@@ -1210,6 +1210,7 @@ void close_outfile(__G) > FILETIME Creft; /* NT file time type, `file creation' time */ > HANDLE hFile; /* File handle defined in NT */ > int gotTime; >+ int errval = PK_OK; > #ifdef __RSXNT__ /* RSXNT/EMX C rtl uses OEM charset */ > char *ansi_name = (char *)alloca(strlen(G.filename) + 1); > >@@ -1227,7 +1228,7 @@ void close_outfile(__G) > > /* don't set the time stamp and attributes on standard output */ > if (uO.cflag) >- return; >+ return errval; > > gotTime = getNTfiletime(__G__ &Modft, &Accft, &Creft); > >@@ -1285,10 +1286,8 @@ void close_outfile(__G) > CloseHandle(hFile); > } > >- return; >- > #undef Ansi_Fname >- >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/os2/os2.c.close 2007-07-20 17:14:02.000000000 +0100 >+++ unzip-5.51/os2/os2.c 2007-07-20 17:14:46.000000000 +0100 >@@ -2020,11 +2020,11 @@ static int SetLongNameEA(char *name, cha > /* Function close_outfile() */ > /****************************/ > >- /* GRR: need to return error level!! */ > >-void close_outfile(__G) /* only for extracted files, not directories */ >+intclose_outfile(__G) /* only for extracted files, not directories */ > __GDEF > { >+ int errval = PK_OK; > fclose(G.outfile); > > /* set extra fields, both stored-in-zipfile and .LONGNAME flavors */ >@@ -2053,6 +2053,7 @@ void close_outfile(__G) /* only for ex > /* set date/time and permissions */ > SetPathAttrTimes(__G__ G.pInfo->file_attr, 0); > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/aosvs/aosvs.c.close 2007-07-20 17:15:10.000000000 +0100 >+++ unzip-5.51/aosvs/aosvs.c 2007-07-20 17:16:11.000000000 +0100 >@@ -970,9 +970,10 @@ int checkdir(__G__ pathcomp, flag) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > > fclose(G.outfile); > >@@ -995,14 +996,14 @@ void close_outfile(__G) /* GRR: chang > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: mem alloc overflow\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > > if ((slnk_entry = (slinkentry *)malloc(slnk_entrysize)) == NULL) { > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: no mem\n", > FnFilter1(G.filename))); >- return; >+ return errval; > } > slnk_entry->next = NULL; > slnk_entry->targetlen = ucsize; >@@ -1022,7 +1023,7 @@ void close_outfile(__G) /* GRR: chang > FnFilter1(G.filename))); > free(slnk_entry); > fclose(G.outfile); >- return; >+ return errval; > } > fclose(G.outfile); /* close "link" file for good... */ > slnk_entry->target[ucsize] = '\0'; >@@ -1035,7 +1036,7 @@ void close_outfile(__G) /* GRR: chang > else > G.slink_head = slnk_entry; > G.slink_last = slnk_entry; >- return; >+ return errval; > } > #endif /* SYMLINKS */ > >@@ -1076,6 +1077,8 @@ void close_outfile(__G) /* GRR: chang > } > } > } >+ >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/macos/source/macos.c.close 2007-07-20 17:16:55.000000000 +0100 >+++ unzip-5.51/macos/source/macos.c 2007-07-20 17:17:42.000000000 +0100 >@@ -779,13 +779,14 @@ int checkdir(__G__ pathcomp, flag) > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > OSErr err; > > if (fileno(G.outfile) == 1) >- return; /* don't attempt to close or set time on stdout */ >+ return errval; /* don't attempt to close or set time on stdout */ > > err = (OSErr)fclose(G.outfile); > >@@ -827,6 +828,7 @@ void close_outfile(__G) > attrbuff = malloced_attrbuff; > } > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/amiga/amiga.c.close 2007-07-20 17:18:08.000000000 +0100 >+++ unzip-5.51/amiga/amiga.c 2007-07-20 17:19:15.000000000 +0100 >@@ -692,9 +692,10 @@ int checkdir(__G__ pathcomp, flag) > /* this part differs slightly with Zip */ > /*-------------------------------------*/ > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > { >+ int errval = PK_OK; > time_t m_time; > #ifdef USE_EF_UT_TIME > iztimes z_utime; >@@ -702,7 +703,7 @@ void close_outfile(__G) > LONG FileDate(); > > if (uO.cflag) /* can't set time or filenote on stdout */ >- return; >+ return errval; > > /* close the file *before* setting its time under AmigaDOS */ > >@@ -750,6 +751,7 @@ void close_outfile(__G) > G.filenotes[G.filenote_slot] = NULL; > } > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/msdos/msdos.c.close 2007-07-20 17:20:34.000000000 +0100 >+++ unzip-5.51/msdos/msdos.c 2007-07-20 17:21:22.000000000 +0100 >@@ -1484,7 +1484,7 @@ typedef union { > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) >+int close_outfile(__G) > __GDEF > /* > * MS-DOS VERSION >@@ -1495,6 +1495,7 @@ void close_outfile(__G) > * the file, this routine is optional (but most compilers support it). > */ > { >+ int errval = PK_OK; > #ifdef USE_EF_UT_TIME > dos_fdatetime dos_dt; > iztimes z_utime; >@@ -1578,6 +1579,7 @@ void close_outfile(__G) > > z_dos_chmod(__G__ G.filename, G.pInfo->file_attr); > >+ return errval; > } /* end function close_outfile() */ > > >--- unzip-5.51/extract.c.close 2007-07-20 17:22:18.000000000 +0100 >+++ unzip-5.51/extract.c 2007-07-20 17:23:09.000000000 +0100 >@@ -1665,24 +1665,21 @@ static int extract_or_test_member(__G) > > #ifdef VMS /* VMS: required even for stdout! (final flush) */ > if (!uO.tflag) /* don't close NULL file */ >- close_outfile(__G); >+ error = close_outfile(__G); > #else > #ifdef DLL > if (!uO.tflag && (!uO.cflag || G.redirect_data)) { > if (G.redirect_data) > FINISH_REDIRECT(); > else >- close_outfile(__G); >+ error = close_outfile(__G); > } > #else > if (!uO.tflag && !uO.cflag) /* don't close NULL file or stdout */ >- close_outfile(__G); >+ error = close_outfile(__G); > #endif > #endif /* VMS */ > >- /* GRR: CONVERT close_outfile() TO NON-VOID: CHECK FOR ERRORS! */ >- >- > if (G.disk_full) { /* set by flush() */ > if (G.disk_full > 1) { > #if (defined(DELETE_IF_FULL) && defined(HAVE_UNLINK)) >--- unzip-5.51/unix/unix.c.close 2007-07-20 17:28:37.000000000 +0100 >+++ unzip-5.51/unix/unix.c 2007-07-20 17:36:14.000000000 +0100 >@@ -989,10 +989,41 @@ static int get_extattribs(__G__ pzt, z_u > #ifndef MTS > > /****************************/ >+/* Function CloseError() */ >+/***************************/ >+ >+int CloseError(__G) >+ __GDEF >+{ >+ int errval = PK_OK; >+ >+ if (fclose(G.outfile) < 0) { >+ switch (errno) { >+ case ENOSPC: >+ /* Do we need this on fileio.c? */ >+ Info(slide, 0x4a1, ((char *)slide, "%s: write error (disk full?). Continue? (y/n/^C) ", >+ FnFilter1(G.filename))); >+ fgets(G.answerbuf, 9, stdin); >+ if (*G.answerbuf == 'y') /* stop writing to this file */ >+ G.disk_full = 1; /* pass to next */ >+ else >+ G.disk_full = 2; /* no: exit program */ >+ >+ errval = PK_DISK; >+ break; >+ >+ default: >+ errval = PK_WARN; >+ } >+ } >+ return errval; >+} /* End of CloseError() */ >+ >+/****************************/ > /* Function close_outfile() */ > /****************************/ > >-void close_outfile(__G) /* GRR: change to return PK-style warning level */ >+int close_outfile(__G) > __GDEF > { > union { >@@ -1001,6 +1032,7 @@ void close_outfile(__G) /* GRR: chang > } zt; > ush z_uidgid[2]; > int have_uidgid_flg; >+ int errval = PK_OK; > > fchmod(fileno(G.outfile), 0400); > >@@ -1014,7 +1046,15 @@ void close_outfile(__G) /* GRR: chang > perror("chmod (file attributes) error"); > #endif > >- fclose(G.outfile); >+ >+/*--------------------------------------------------------------------------- >+ Check what fclose() reports from the device, this is always safer. >+ An NFS non Solaris could be full and we could be facing ENOSPC not >+ seen by write() without opening with O_SYNC or writing with fsync(). >+ - jmp. >+ ---------------------------------------------------------------------------*/ >+ >+ errval = CloseError(G.outfile, G.filename); > > /*--------------------------------------------------------------------------- > If symbolic links are supported, allocate storage for a symlink control >@@ -1035,14 +1075,14 @@ void close_outfile(__G) /* GRR: chang > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: mem alloc overflow\n", > FnFilter1(G.filename))); >- return; >+ return PK_WARN; > } > > if ((slnk_entry = (slinkentry *)malloc(slnk_entrysize)) == NULL) { > Info(slide, 0x201, ((char *)slide, > "warning: symbolic link (%s) failed: no mem\n", > FnFilter1(G.filename))); >- return; >+ return PK_WARN; > } > slnk_entry->next = NULL; > slnk_entry->targetlen = ucsize; >@@ -1062,12 +1102,12 @@ void close_outfile(__G) /* GRR: chang > FnFilter1(G.filename))); > free(slnk_entry); > if (G.outfile) >- fclose(G.outfile); >- return; >+ errval = CloseError(G.outfile, G.filename); >+ return errval; > } > > if (G.outfile) >- fclose(G.outfile); /* close "link" file for good... */ >+ errval = CloseError(G.outfile, G.filename); /* close "lnk" file for good*/ > slnk_entry->target[ucsize] = '\0'; > if (QCOND2) > Info(slide, 0, ((char *)slide, "-> %s ", >@@ -1078,7 +1118,7 @@ void close_outfile(__G) /* GRR: chang > else > G.slink_head = slnk_entry; > G.slink_last = slnk_entry; >- return; >+ return errval; > } > #endif /* SYMLINKS */ > >@@ -1126,6 +1166,7 @@ void close_outfile(__G) /* GRR: chang > #endif /* ?AOS_VS */ > } > >+ return errval; > } /* end function close_outfile() */ > > #endif /* !MTS */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 249057
:
159666
| 159667