Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(428)

Side by Side Diff: src/platform/vboot_reference/vkernel/kernel_image.c

Issue 2351002: Better error messages, allow larger-than-needed input when reading. (Closed) Base URL: ssh://git@chromiumos-git/chromeos
Patch Set: Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/platform/vboot_reference/misclibs/file_keys.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 * 4 *
5 * Functions for generating and manipulating a verified boot kernel image. 5 * Functions for generating and manipulating a verified boot kernel image.
6 * (Userland portion) 6 * (Userland portion)
7 */ 7 */
8 #include "kernel_image.h" 8 #include "kernel_image.h"
9 9
10 #include <fcntl.h> 10 #include <fcntl.h>
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 if (st.remaining_len < on_disk_padding) 169 if (st.remaining_len < on_disk_padding)
170 st.overrun = -1; 170 st.overrun = -1;
171 st.remaining_buf += on_disk_padding; 171 st.remaining_buf += on_disk_padding;
172 st.remaining_len -= on_disk_padding; 172 st.remaining_len -= on_disk_padding;
173 } 173 }
174 174
175 /* Read kernel image data. */ 175 /* Read kernel image data. */
176 image->kernel_data = (uint8_t*) Malloc(image->kernel_len); 176 image->kernel_data = (uint8_t*) Malloc(image->kernel_len);
177 StatefulMemcpy(&st, image->kernel_data, image->kernel_len); 177 StatefulMemcpy(&st, image->kernel_data, image->kernel_len);
178 178
179 if(st.overrun || st.remaining_len != 0) { /* Overrun or underrun. */ 179 if(st.overrun) {
gauravsh 2010/05/28 07:22:43 add a comment here that underruns are ok here?
180 Free(kernel_buf); 180 Free(kernel_buf);
181 return NULL; 181 return NULL;
182 } 182 }
183 Free(kernel_buf); 183 Free(kernel_buf);
184 return image; 184 return image;
185 } 185 }
186 186
187 int GetKernelHeaderLen(const KernelImage* image) { 187 int GetKernelHeaderLen(const KernelImage* image) {
188 return (FIELD_LEN(header_version) + FIELD_LEN(header_len) + 188 return (FIELD_LEN(header_version) + FIELD_LEN(header_len) +
189 FIELD_LEN(firmware_sign_algorithm) + 189 FIELD_LEN(firmware_sign_algorithm) +
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 // Clean up and return the blob. 751 // Clean up and return the blob.
752 done3: 752 done3:
753 Free(bootloader_buf); 753 Free(bootloader_buf);
754 done2: 754 done2:
755 Free(config_buf); 755 Free(config_buf);
756 done1: 756 done1:
757 Free(kernel_buf); 757 Free(kernel_buf);
758 done0: 758 done0:
759 return blob; 759 return blob;
760 } 760 }
OLDNEW
« no previous file with comments | « src/platform/vboot_reference/misclibs/file_keys.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698