Changeset View
Changeset View
Standalone View
Standalone View
src/kar.cpp
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Line(s) | 148 | if (name.mid(0, 1) == "/") { | |||
---|---|---|---|---|---|
160 | } else { // Longfilename | 160 | } else { // Longfilename | ||
161 | //qCDebug(KArchiveLog) << "Longfilename #" << name.mid(1, 15).toInt(); | 161 | //qCDebug(KArchiveLog) << "Longfilename #" << name.mid(1, 15).toInt(); | ||
162 | if (! ar_longnames) { | 162 | if (! ar_longnames) { | ||
163 | setErrorString(tr("Invalid longfilename reference")); | 163 | setErrorString(tr("Invalid longfilename reference")); | ||
164 | delete[] ar_longnames; | 164 | delete[] ar_longnames; | ||
165 | return false; | 165 | return false; | ||
166 | } | 166 | } | ||
167 | const int ar_longnamesIndex = name.mid(1, 15).toInt(); | 167 | const int ar_longnamesIndex = name.mid(1, 15).toInt(); | ||
168 | if (ar_longnamesIndex >= size) { | 168 | if (ar_longnamesIndex < 0 || ar_longnamesIndex >= size) { | ||
169 | setErrorString(tr("Invalid longfilename position reference")); | 169 | setErrorString(tr("Invalid longfilename position reference")); | ||
170 | delete[] ar_longnames; | 170 | delete[] ar_longnames; | ||
171 | return false; | 171 | return false; | ||
172 | } | 172 | } | ||
173 | name = &ar_longnames[ar_longnamesIndex]; | 173 | name = &ar_longnames[ar_longnamesIndex]; | ||
174 | name = name.left(name.indexOf("/")); | 174 | name = name.left(name.indexOf("/")); | ||
175 | } | 175 | } | ||
176 | } | 176 | } | ||
Show All 30 Lines |