Changeset 465


Ignore:
Timestamp:
Jul 28, 2003, 8:02:41 PM (22 years ago)
Author:
bird
Message:

#579?: Detect if the file is a library and take appropriate actions.

Location:
trunk/src/emx/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/lib/omflib/omflibam.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r464 r465  
    1414  char name[256];
    1515  char obj_fname[256+4];
     16  byte libhdr[1];
    1617  int ret;
    1718
     
    2223  if (f == NULL)
    2324    return omflib_set_error (error);
     25
     26  /* this may be a library, check so we don't create invalid libraries
     27     (#579?) */
     28  if (   fread(&libhdr[0], sizeof(libhdr), 1, f) == 1
     29      && libhdr[0] == LIBHDR
     30      )
     31    {
     32      struct omflib *   src = omflib_open (fname, error);
     33      if (!src)
     34          return -1;
     35      ret = omflib_copy_lib(p, src, error);
     36      omflib_close(src, error);
     37      return ret;
     38    }
     39  fseek(f, 0, SEEK_SET);
     40
    2441  ret = omflib_copy_module (p, p->f, NULL, f, name, error);
    2542  fclose (f);
  • trunk/src/emx/src/libomflib/omflibam.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r464 r465  
    1414  char name[256];
    1515  char obj_fname[256+4];
     16  byte libhdr[1];
    1617  int ret;
    1718
     
    2223  if (f == NULL)
    2324    return omflib_set_error (error);
     25
     26  /* this may be a library, check so we don't create invalid libraries
     27     (#579?) */
     28  if (   fread(&libhdr[0], sizeof(libhdr), 1, f) == 1
     29      && libhdr[0] == LIBHDR
     30      )
     31    {
     32      struct omflib *   src = omflib_open (fname, error);
     33      if (!src)
     34          return -1;
     35      ret = omflib_copy_lib(p, src, error);
     36      omflib_close(src, error);
     37      return ret;
     38    }
     39  fseek(f, 0, SEEK_SET);
     40
    2441  ret = omflib_copy_module (p, p->f, NULL, f, name, error);
    2542  fclose (f);
Note: See TracChangeset for help on using the changeset viewer.