Giter Site home page Giter Site logo

unrar's Introduction

                       Portable UnRAR version


   1. General

   This package includes freeware Unrar C++ source and makefile for
   several Unix compilers.

   Unrar source is subset of RAR and generated from RAR source automatically,
   by a small program removing blocks like '#ifndef UNRAR ... #endif'.
   Such method is not perfect and you may find some RAR related stuff
   unnecessary in Unrar, especially in header files.

   If you wish to port Unrar to a new platform, you may need to edit
   '#define LITTLE_ENDIAN' in os.hpp and data type definitions
   in rartypes.hpp.

   if computer architecture does not allow not aligned data access,
   you need to undefine ALLOW_NOT_ALIGNED_INT and define
   STRICT_ALIGNMENT_REQUIRED in os.h.

   UnRAR.vcproj and UnRARDll.vcproj are projects for Microsoft Visual C++.
   UnRARDll.vcproj lets to build unrar.dll library.


   2. Unrar binaries

   If you compiled Unrar for OS, which is not present in "Downloads"
   and "RAR extras" on www.rarlab.com, we will appreciate if you send
   us the compiled executable to place it to our site.


   3. Acknowledgements

   This source includes parts of code written by other authors.
   Please see acknow.txt file for details.


   4. Legal stuff

   Unrar source may be used in any software to handle RAR archives
   without limitations free of charge, but cannot be used to re-create
   the RAR compression algorithm, which is proprietary. Distribution
   of modified Unrar source in separate form or as a part of other
   software is permitted, provided that it is clearly stated in
   the documentation and source comments that the code may not be used
   to develop a RAR (WinRAR) compatible archiver.

   More detailed license text is available in license.txt.

unrar's People

Contributors

aawc avatar chrdavis avatar drubery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unrar's Issues

Request to review v6.0.3

@chrdavis -- since you landed a patch in this repository previously, would you be interested in reviewing the latest version on the unrar library?

I just landed v6.0.3 here and would welcome a review from you (feel free to decline).
Sorry for not asking you about this before landing the new version of the library.

Most specifically, I ended up rolling back your changes from #23 so that the code here is an exact replica of the unrar library source from rarlab.com, but the corresponding CL in the Chromium repository will be unaffected.

Also, please let me know if you'd like to review https://chromium-review.googlesource.com/c/chromium/src/+/2634824

Thanks!

Definition of STRICT on Windows builds is incompatible with Windows.h

In os.hpp there is a line of code that says "#define STRICT"

https://github.com/aawc/unrar/blob/master/os.hpp#L25

Unfortunately that is incompatible with the Windows 10 SDK, from at least version 10.0.15063.0 onwards. There, in minwindef.h, the definition is:

#ifndef STRICT
#define STRICT 1
#endif

Depending on the order in which these statements are reached this may be a build break. That is, if minwindef.h is reached first then the compiler will issue this warning:

unrar/src/os.hpp(25,9): error: 'STRICT' macro redefined [-Werror,-Wmacro-redefined]

Changing the line to #define STRICT 1 would improve compatibility.

OSS-Fuzz build issue recently introduce due to duplicate variable declaration

A recently commit introduced a double declaration of SetAttrOnly in Extract.cpp, this is currently causing OSS-Fuzz build issues https://oss-fuzz-build-logs.storage.googleapis.com/log-441dcd4d-726a-4c18-aa1b-6a9eca259d06.txt:

unrar/extract.cpp

Lines 778 to 793 in 487e530

// If we successfully unpacked a hard link, we wish to set its file
// attributes. Hard link shares file metadata with link target,
// so we do not need to set link time or owner. But when we overwrite
// an existing link, we can call PrepareToDelete(), which affects
// link target attributes as well. So we set link attributes to restore
// both target and link attributes if PrepareToDelete() changed them.
bool SetAttrOnly=LinkEntry && Arc.FileHead.RedirType==FSREDIR_HARDLINK && LinkSuccess;
// If we successfully unpacked a hard link, we wish to set its file
// attributes. Hard link shares file metadata with link target,
// so we do not need to set link time or owner. But when we overwrite
// an existing link, we can call PrepareToDelete(), which affects
// link target attributes as well. So we set link attributes to restore
// both target and link attributes if PrepareToDelete() changed them.
bool SetAttrOnly=LinkEntry && Arc.FileHead.RedirType==FSREDIR_HARDLINK && LinkSuccess;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.